MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

特定のフィールド値を持つドキュメントをフェッチするためのMongoDB集約?


これには、aggregate()を使用します。値が「21」のフィールド「Age」を持つドキュメントをフェッチする必要があるとします。

ドキュメントを使用してコレクションを作成しましょう-

> db.demo685.insertOne(
...    {
...       "details":
...       [
...          {
...             Name:"Chris",
...             Age:21
...          },
...          {
...             Name:"David",
...             Age:23
...          },
...          {
...             Name:"Bob",
...             Age:21
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea54f6fa7e81adc6a0b395b")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo685.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5ea54f6fa7e81adc6a0b395b"), "details" : [
   { "Name" : "Chris", "Age" : 21 },
   { "Name" : "David", "Age" : 23 },
   { "Name" : "Bob", "Age" : 21 } 
] }

以下は、MongoDBアグリゲーションのクエリです-

> db.demo685.aggregate([ { $unwind: "$details" }, { $match: { "details.Age": 21 } }, { $project: {_id: 0}} ]).pretty();

これにより、次の出力が生成されます-

{ "details" : { "Name" : "Chris", "Age" : 21 } }
{ "details" : { "Name" : "Bob", "Age" : 21 } }

  1. 特定の数より大きいフィールド値を持つMongoDBドキュメントを照合し、それらをフェッチしますか?

    一致させるには、MongoDBで$matchを使用します。特定の数値より大きい値の場合は、$gtを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo730.insertOne({"Name" : "Chris", "Marks" : 33 }); {    "acknowledged" : true,    "insertedId" : ObjectId("5eac54cd56e85a39df5f6339&

  2. MongoDBで配列をクエリして、特定の値をフェッチします

    配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ...    { ...       "details": [ ...          { ...             "student": { ...     &nb