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

深いサブリストを連結するためのMongoDBクエリはありますか?


$ unwindとともにaggregate()を使用して、深いサブリストを連結します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo70.insertOne(
...    {
...
...       "first" : [
...          {
...             "details" : {
...                "second" : [
...                   {
...                      "StudentDetails" : {
...                      "Score" : 10
...                   }
...                },
...                {
...                   "StudentDetails" : {
...                   "Score" : 20
...                }
...             },
...             {
...                "StudentDetails" : {
...                   "Score" : 30
...                }
...             }
...          ]
...       }
...    },
...    {
...       "details" : {
...          "second" : [
...             {
...                "StudentDetails" : {
...                "Score" : 11
...                }
...             },
...             {
...                "StudentDetails" : {
...                   "Score" : 18
...                }
...             },
...             {
...                "StudentDetails" : {
...                   "Score" : 29
...                   }
...                }
...             ]
...          }
...       }
...    ]
... }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e29ad4d0912fae76b13d76d")
}

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

> db.demo70.find().pretty();

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

{
   "_id" : ObjectId("5e29ad4d0912fae76b13d76d"),
   "first" : [
      {
         "details" : {
            "second" : [
                  {
                     "StudentDetails" : {
                     "Score" : 10
                  }
               },
               {
                  "StudentDetails" : {
                     "Score" : 20
                  }
               },
               {
                  "StudentDetails" : {
                     "Score" : 30
                  }
               }
            ]
         }
      },
      {
         "details" : {
            "second" : [
               {
                  "StudentDetails" : {
                     "Score" : 11
               }
            },
            {
               "StudentDetails" : {
                  "Score" : 18
                  }
               },
               {
                  "StudentDetails" : {
                     "Score" : 29
                  }
               }
            ]
         }
      }
   ]
}

以下は、深いサブリストを連結するためのクエリです-

> db.demo70.aggregate([
... { $unwind: "$first" },
... { $unwind: "$first.details.second" },
... { $sort: { "first.details.second.StudentDetails.Score": -1 } },
... { $limit: 3 },
... { $replaceRoot: { newRoot: "$first.details.second.StudentDetails" } },
... { $sort: { "Score": 1 } }
... ]);

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

{ "Score" : 20 }
{ "Score" : 29 }
{ "Score" : 30 }

  1. MongoDB-埋め込まれたドキュメントをクエリしますか?

    MongoDBに埋め込まれたドキュメントをクエリするには、aggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo705.insertOne( ...    { ...       _id:101, ...       "Information": ...       [ ...          { ...       &nbs

  2. MongoDBの条件と連結しますか?

    MongoDBの条件と連結するには、$ condを使用し、その中で$concatを操作します。ドキュメントを使用してコレクションを作成しましょう- > db.demo745.insertOne({Value1:"100",Value2:"100"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eae6419a930c785c834e554") } > db.demo745