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

중첩된 MongoDB 문서의 키만 표시하는 방법은 무엇입니까?

<시간/>

문서로 컬렉션을 만들자 −

> db.demo740.insertOne({... "details":... [... {... Name:"Chris",... Age:21,... CountryName:"US" ... },... {... Name:"Bob",... Age:20,... CountryName:"UK",... isMarried:true... }... ].. . });{ "승인됨" :true, "insertedId" :ObjectId("5ead700c57bb72a10bcf066d")}

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

> db.demo740.find();

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

"_id" :ObjectId("5ead700c57bb72a10bcf066d"), "details" :[ { "Name" :"Chris", "Age" :21, "CountryName" :"US" }, { "Name" :"Bob ", "Age":20, "CountryName":"UK", "isMarried":true } ] }

다음은 중첩된 MongoDB 문서의 키를 가져오는 쿼리입니다 -

> db.demo740.aggregate([... {... $project:{... ListKeys:{... $reduce:{... 입력:"$details",... initialValue:[],... in:{... $concatArrays:[... "$$value",... {... $map:{... 입력:{... $objectToArray:"$ $this"... },... in:"$$this.k"... }... }... ]... }... }... }... }.. . }... ]).예쁜()

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

{ "_id" :ObjectId("5ead700c57bb72a10bcf066d"), "ListKeys" :[ "이름", "나이", "국가 이름", "이름", "나이", "국가 이름", "결혼입니다" ]}