find()가 MongoDB에서 중첩 키를 검색하려면 점(.) 표기법을 사용할 수 있습니다. 다음은 구문입니다.
db.yourCollectionName.find({"yourOuterFieldName.yourInnerFieldName":"yourValue"}).pretty();
먼저 문서로 컬렉션을 생성해 보겠습니다.
>db.searchForNestedKeysDemo.insertOne({"ClientName":"Larry","ClientAge":28,"ClientExtraDetails":{"isEducated":true,"CountryName":"US"}});{ "확인됨 " :true, "insertedId" :ObjectId("5ca20e8b66324ffac2a7dc64")}>db.searchForNestedKeysDemo.insertOne({"ClientName":"Chris","ClientAge":29,"ClientExtraDetails":{"isEducated":false, ":"UK"}});{ "승인됨":true, "insertedId":ObjectId("5ca20ea366324ffac2a7dc65")}>db.searchForNestedKeysDemo.insertOne({"ClientName":"David","ClientAge":39," ClientExtraDetails":{"isEducated":true,"CountryName":"AUS"}});{ "승인됨":true, "insertedId":ObjectId("5ca20eba66324ffac2a7dc66")}
다음은 find() 메서드를 사용하여 컬렉션의 모든 문서를 표시하는 쿼리입니다.
> db.searchForNestedKeysDemo.find().pretty();
그러면 다음과 같은 출력이 생성됩니다.
{ "_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" }}
다음은 MongoDB에서 중첩된 키를 검색하는 쿼리입니다.
> db.searchForNestedKeysDemo.find({"ClientExtraDetails.CountryName":"영국"}).pretty();
그러면 다음과 같은 출력이 생성됩니다.
{ "_id" :ObjectId("5ca20ea366324ffac2a7dc65"), "ClientName" :"Chris", "ClientAge" :29, "ClientExtraDetails" :{ "isEducated" :false, "CountryName" :"UK" }}사전>