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

1回の操作でmongodbの複数の集計

    Mongo 3.4以降 、 $ facet 集約ステージは、同じ入力ドキュメントのセットで単一のステージ内の複数の集約パイプラインを処理することにより、このタイプのユースケースを大幅に簡素化します。

    // { "item" : "i1", "category" : "c1", "brand" : "b1" }
    // { "item" : "i2", "category" : "c2", "brand" : "b1" }
    // { "item" : "i3", "category" : "c1", "brand" : "b2" }
    // { "item" : "i4", "category" : "c2", "brand" : "b1" }
    // { "item" : "i5", "category" : "c1", "brand" : "b2" }
    db.collection.aggregate(
      { $facet: {
          categories: [{ $group: { _id: "$category", count: { "$sum": 1 } } }],
          brands:     [{ $group: { _id: "$brand",    count: { "$sum": 1 } } }]
      }}
    )
    // {
    //   "categories" : [
    //     { "_id" : "c1", "count" : 3 },
    //     { "_id" : "c2", "count" : 2 }
    //   ],
    //   "brands" : [
    //     { "_id" : "b1", "count" : 3 },
    //     { "_id" : "b2", "count" : 2 }
    //   ]
    // }
    


    1. 欠落しているデータをスキップしながら、データ型を文字列から日付に変更します

    2. mongodbワイルドカードは、特定のキーのすべての値に一致します

    3. マングースの人口+骨材

    4. MongoDBをAmazonVirtualPrivate Cloud(VPC)にデプロイする