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

MongoDB에서 중첩 JSON 객체의 데이터만 가져오는 방법은 무엇입니까?

<시간/>

MongoDB에서 중첩된 JSON 객체의 데이터를 가져오려면 findOne()을 사용합니다. 문서로 컬렉션을 만들자 −

> db.demo109.insertOne(
...    {
...       "Name" : "Chris",
...       "Subjects" : [
...          {
...             "Id" : "100",
...             "Name":"MySQL",
...             "InstructorDetails" : [
...                {
...                   "Name" : "John"
...                }
...             ]
...          },
...          {
...             "Id" : "101",
...             "Name":"MongoDB",
...             "InstructorDetails" : [
...                {
...                   "Name" : "Mike"
...                }
...             ]
...          }
...       ]
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e2ee7df9fd5fd66da21447a")
}

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

> db.demo109.find();

이것은 다음과 같은 출력을 생성합니다 -

{
   "_id" : ObjectId("5e2ee7df9fd5fd66da21447a"), "Name" : "Chris", "Subjects" : [
      { "Id" : "100", "Name" : "MySQL", "InstructorDetails" : [ { "Name" : "John" } ] },
      { "Id" : "101", "Name" : "MongoDB", "InstructorDetails" : [ { "Name" : "Mike" } ] }
   ] 
}

다음은 MongoDB에서 중첩된 JSON 객체의 데이터만 가져오는 쿼리입니다 -

> db.demo109.findOne(
... { Name: "Chris"}
... , { 'Subjects': { $elemMatch:{'Id':"100"} } }
... , function (err, doc) { console.log(doc) });

이것은 다음과 같은 출력을 생성합니다 -

{
   "_id" : ObjectId("5e2ee7df9fd5fd66da21447a"),
   "Subjects" : [
      {
         "Id" : "100",
         "Name" : "MySQL",
         "InstructorDetails" : [
            {
               "Name" : "John"
            }
         ]
      }
   ]
}