埋め込まれたドキュメントのみを返すMongoDBクエリ?
埋め込まれたドキュメントのみを返すことはできません。ただし、コレクションからすべてのドキュメントが返されます。まず、次のクエリを実装して、ドキュメントを含むコレクションを作成しましょう
>db.queryToEmbeddedDocument.insertOne({"UserName":"Larry","PostDetails":[{"UserMessage":"Hello","UserLikes":8},{"UserMessage":"Hi","UserLikes":6},{"UserMessage":"Good Morning","UserLikes":12},{"UserMessage":"Awesome","UserLikes":4}]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c988a9f330fd0aa0d2fe4bd")
} 以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです
> db.queryToEmbeddedDocument.find().pretty();
これにより、次の出力が生成されます
{
"_id" : ObjectId("5c988a9f330fd0aa0d2fe4bd"),
"UserName" : "Larry",
"PostDetails" : [
{
"UserMessage" : "Hello",
"UserLikes" : 8
},
{
"UserMessage" : "Hi",
"UserLikes" : 6
},
{
"UserMessage" : "Good Morning",
"UserLikes" : 12
},
{
"UserMessage" : "Awesome",
"UserLikes" : 4
}
]
} 以下は、コレクションからすべてのドキュメントを返すためのクエリです
> db.queryToEmbeddedDocument.find({"PostDetails.UserLikes": {$gte: 8}},{PostDetails:1}).pretty(); これにより、次の出力が生成されます
{
"_id" : ObjectId("5c988a9f330fd0aa0d2fe4bd"),
"PostDetails" : [
{
"UserMessage" : "Hello",
"UserLikes" : 8
},
{
"UserMessage" : "Hi",
"UserLikes" : 6
},
{
"UserMessage" : "Good Morning",
"UserLikes" : 12
},
{
"UserMessage" : "Awesome",
"UserLikes" : 4
}
]
} 上記のサンプル出力を見ると、「UserLikes」が8以上のドキュメントのみが必要なのに、すべてのドキュメントが取得されています。
-
ネストされたドキュメントを更新するためのMongoDBクエリ
ドキュメントを使用してコレクションを作成しましょう- > db.demo595.insertOne( { "Information": [ { "_id": new ObjectId(), Name:"Chris" }, { _id:new ObjectId(), Name:"Robert" } ] } ); { "acknowledged" : true, "inserted
-
MongoDBを使用して埋め込みドキュメントの配列でクエリをフィルタリングしますか?
これには、MongoDBでaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo736.insertOne( ... { ... "_id": "101", ... "details1": [ ... { ... &q