Computer >> 컴퓨터 >  >> 프로그램 작성 >> MongoDB

객체 내부의 배열에서 데이터를 찾는 MongoDB 쿼리?

<시간/>

먼저 문서로 컬렉션을 생성해 보겠습니다. −

> db.findDataDemo.insertOne(
   {
      "_id": new ObjectId(),
      "CustomerName":"John",
      "CustomerDetails" : {
         "CountryName" : [
            "AUS"
         ],
         "isMarried" : [
            false
         ]
      }
   }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefa5eeef71edecf6a1f6a5")
}
> db.findDataDemo.insertOne(
   {
      "_id": new ObjectId(),
      "CustomerName":"Carol",
      "CustomerDetails" : {
         "CountryName" : [
            "UK"
         ],
         "isMarried" : [
            true
         ]
      }
   }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cefa60aef71edecf6a1f6a6")
}

find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -

> db.findDataDemo.find().pretty();

출력

{
   "_id" : ObjectId("5cefa5eeef71edecf6a1f6a5"),
   "CustomerName" : "John",
   "CustomerDetails" : {
      "CountryName" : [
         "AUS"
      ],
      "isMarried" : [
         false
      ]
   }
}
{
   "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"),
   "CustomerName" : "Carol",
   "CustomerDetails" : {
      "CountryName" : [
         "UK"
      ],
      "isMarried" : [
         true
      ]
   }
}

다음은 객체 내부의 배열에서 데이터를 찾는 쿼리입니다 -

> db.findDataDemo.find({"CustomerDetails.CountryName":"UK"});

출력

{ "_id" : ObjectId("5cefa60aef71edecf6a1f6a6"), "CustomerName" : "Carol", "CustomerDetails" : { "CountryName" : [ "UK" ], "isMarried" : [ true ] } }