sql >> データベース >  >> NoSQL >> MongoDB

javascriptからmongodbで内部クエリを渡す方法

    TLDR;

    マングースに相当するのは、最初にネストされたクエリを実行し、その結果を集計に渡すことです。

    groups.distinct("p", {"enable": true}).exec().then(matchingGroups => {
        return users.aggregate([
            {$match: {"id": {$in: ["0", "1", "2"]}, p: {$in: matchingGroups}}},
            {$group:{_id:"$v", number:{$sum:1 }}}
        ]).exec();
    }).then(aggregationResult => {
        console.log(aggregationResult);
    });
    

    説明

    次のスクリプトをmongoシェルで実行すると、最初に内部クエリ(distinct)が送信され、次に結果が外部クエリ(aggregation)に渡され、実行のために送信されます。これは、パケットトレースをキャプチャすることで確認できます。添付の画像では、最初のクエリ送信 を確認できます。 (パケット9)受信した応答(パケット10および11)、および集計クエリの送信 (パケット12および13)。



    1. RailsRedisのmaxmemoryとmaxmemory-policyの設定

    2. herokumongohqおよびmongoidMongo::ConnectionFailure

    3. 複数のフィールドとmongodbのwhere条件で区別されます

    4. オブジェクトのネストされた配列を並べ替える