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

Rangeに基づいてMongoDBの埋め込みドキュメントの配列をクエリしますか?


範囲に基づいて埋め込みドキュメントの配列をクエリするには、aggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo346.insertOne(
...    {
...       _id: 101,
...       userDetails: [
...          { UserName: "Chris", Score:78},
...          { UserName: "David", Score:68},
...          { UserName: "Bob", Score:88}
...       ]
...    }
... );
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo346.insertOne(
...    {
...       _id: 102,
...       userDetails: [
...          { UserName: "Mike", Score:92},
...          { UserName: "Sam", Score:62},
...          { UserName: "Carol", Score:97}
...       ]
...    }
... );
{ "acknowledged" : true, "insertedId" : 102 }

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

> db.demo346.find();

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

{
   "_id" : 101, "userDetails" : [
      { "UserName" : "Chris", "Score" : 78 },
      { "UserName" : "David", "Score" : 68 },
      { "UserName" : "Bob", "Score" : 88 }
   ]
}
{
   "_id" : 102, "userDetails" : [
      { "UserName" : "Mike", "Score" : 92 },
      { "UserName" : "Sam", "Score" : 62 },
      { "UserName" : "Carol", "Score" : 97 }
   ] 
}

以下は、範囲-

に基づいてMongoDBに埋め込まれたドキュメントの配列をクエリする方法です。
> db.demo346.aggregate([
...    { "$match": { "$expr": { "$gte": [{ "$size": { "$ifNull": ["$userDetails", []] } }, 1] }}},
...    { "$addFields": {
...          "userDetails": {
...          "$filter": {
...             "input": { "$ifNull": ["$userDetails", []] },
...             "cond": {
...                "$and": [
...                   { "$gte": ["$$this.Score", 80] },
...                   { "$lte": ["$$this.Score", 99] }
...                ]
...             }
...          }
...       }
...    }}
... ])

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

{ "_id" : 101, "userDetails" : [ { "UserName" : "Bob", "Score" : 88 } ] }
{ "_id" : 102, "userDetails" : [ { "UserName" : "Mike", "Score" : 92 }, { "UserName" : "Carol", "Score" : 97 } ] }

  1. MongoDBを使用して埋め込みドキュメントの配列でクエリをフィルタリングしますか?

    これには、MongoDBでaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo736.insertOne( ...    { ...       "_id": "101", ...       "details1": [ ...          { ...             &q

  2. MongoDBを使用して、特定のネストされたドキュメントのオブジェクトの配列をクエリしますか?

    ネストされたドキュメントのオブジェクトの配列をクエリするには、find()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo763.insertOne( ...    { ...       _id:1, ...       CountryName:"US", ...       "studentInformation": [ ...          {