MongoDB 4でネストされたクエリを作成して、特定のドキュメントをフェッチします
ネストされたクエリの場合、最初にドキュメントを含むコレクションを作成しましょう-
> db.demo492.insertOne({ ... "ProductDetails" : ... { ... "StockDetails" : [ ... { "ProductName" : "Product-1" }, ... {"ProductName" : "Product-2"}, ... { "ProductName" : "Product-3"} ... ... ] ... ... } ... }); { "acknowledged" : true, "insertedId" : ObjectId("5e849db8b0f3fa88e22790c2") } > > > > db.demo492.insertOne({ ... "ProductDetails" : ... { ... "StockDetails" : [ ... { "ProductName" : "Product-4" }, ... {"ProductName" : "Product-5"}, ... { "ProductName" : "Product-6"} ... ... ] ... ... } ... }); { "acknowledged" : true, "insertedId" : ObjectId("5e849dceb0f3fa88e22790c3") }
find()メソッドを使用してコレクションからすべてのドキュメントを表示する-
> db.demo492.find();
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e849db8b0f3fa88e22790c2"), "ProductDetails" : { "StockDetails" : [ { "ProductName" : "Product-1" }, { "ProductName" : "Product-2" }, { "ProductName" : "Product3" } ] } } { "_id" : ObjectId("5e849dceb0f3fa88e22790c3"), "ProductDetails" : { "StockDetails" : [ { "ProductName" : "Product-4" }, { "ProductName" : "Product-5" }, { "ProductName" : "Product6" } ] } }
以下は、ドット表記を使用して特定のドキュメントをフェッチするMongoDBのネストされたクエリを表示します-
> db.demo492.find({ "ProductDetails.StockDetails.ProductName":"Product-1"});
これにより、次の出力が生成されます-
{ "_id" : ObjectId("5e849db8b0f3fa88e22790c2"), "ProductDetails" : { "StockDetails" : [ { "ProductName" : "Product-1" }, { "ProductName" : "Product-2" }, { "ProductName" : "Product3" } ] } }
-
MongoDBドキュメントから特定の値をフィルタリングする
特定の値をフィルタリングするには、MongoDBで$filterを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo751.insertOne( ... { ... _id: 101, ... details: [ ... { Name: "Robert", id:110,Age:21}, ... &nb
-
MongoDBで配列をクエリして、特定の値をフェッチします
配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ... { ... "details": [ ... { ... "student": { ... &nb