Đố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"
}
}