Đối với find () để tìm kiếm các khóa lồng nhau trong MongoDB, bạn có thể sử dụng ký hiệu dấu chấm (.). Sau đây là thesyntax
db.yourCollectionName.find({"yourOuterFieldName.yourInnerFieldName":"yourValue"}).pretty();
Trước tiên, hãy để chúng tôi tạo một bộ sưu tập với các tài liệu:
>db.searchForNestedKeysDemo.insertOne({"ClientName":"Larry","ClientAge":28,"ClientExtra Details":{"isEducated":true,"CountryName":"US"}}); { "acknowledged" : true, "insertedId" : ObjectId("5ca20e8b66324ffac2a7dc64") } >db.searchForNestedKeysDemo.insertOne({"ClientName":"Chris","ClientAge":29,"ClientExtra Details":{"isEducated":false,"CountryName":"UK"}}); { "acknowledged" : true, "insertedId" : ObjectId("5ca20ea366324ffac2a7dc65") } >db.searchForNestedKeysDemo.insertOne({"ClientName":"David","ClientAge":39,"ClientExtra Details":{"isEducated":true,"CountryName":"AUS"}}); { "acknowledged" : true, "insertedId" : ObjectId("5ca20eba66324ffac2a7dc66") }
Sau đây là truy vấn để hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find ()
> db.searchForNestedKeysDemo.find().pretty();
Điều này sẽ tạo ra kết quả sau
{ "_id" : ObjectId("5ca20e8b66324ffac2a7dc64"), "ClientName" : "Larry", "ClientAge" : 28, "ClientExtraDetails" : { "isEducated" : true, "CountryName" : "US" } } { "_id" : ObjectId("5ca20ea366324ffac2a7dc65"), "ClientName" : "Chris", "ClientAge" : 29, "ClientExtraDetails" : { "isEducated" : false, "CountryName" : "UK" } } { "_id" : ObjectId("5ca20eba66324ffac2a7dc66"), "ClientName" : "David", "ClientAge" : 39, "ClientExtraDetails" : { "isEducated" : true, "CountryName" : "AUS" } }
Sau đây là truy vấn để tìm kiếm các khóa lồng nhau trong MongoDB
> db.searchForNestedKeysDemo.find({"ClientExtraDetails.CountryName":"UK"}).pretty();
Điều này sẽ tạo ra kết quả sau
{ "_id" : ObjectId("5ca20ea366324ffac2a7dc65"), "ClientName" : "Chris", "ClientAge" : 29, "ClientExtraDetails" : { "isEducated" : false, "CountryName" : "UK" } }