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

MongoDB의 임베디드 배열에서 특정 요소를 얻으시겠습니까?

<시간/>

특정 요소를 얻으려면 점 표기법과 함께 $match를 사용하십시오. 문서로 컬렉션을 만들자 −

> db.demo641.insert(... {... ProductId:101,... "제품 정보":... ( [... {... 제품 이름:"제품-1",.. . "제품 가격":1000... },... {... 제품 이름:"제품-2",... "제품 가격":500... },... {... 제품 이름:"제품 -3",... "제품 가격":2000... },... {... 제품 이름:"제품-4",... "제품 가격":3000... }... ].. . }... );WriteResult({ "nInserted" :1 })

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

> db.demo641.find();

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

{ "_id" :ObjectId("5e9c31d46c954c74be91e6e2"), "ProductId" :101, "ProductInformation" :[ { "ProductName" :"Product-1", "ProductPrice" :1000 }, { "ProductName" :" 제품-2", "제품가격" :500 }, { "제품이름" :"제품-3", "제품가격" :2000 }, { "제품이름" :"제품-4", "제품가격" :3000 } ] } 

다음은 MongoDB의 임베디드 배열에서 특정 요소를 가져오는 쿼리입니다.

> db.demo641.aggregate([... {$unwind:"$ProductInformation"},... {$match:{ "ProductInformation.ProductPrice":{$in:[1000, 2000]}} } ,... {$project:{_id:0, 제품 정보:1} }... ]).pretty();

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

{ "제품 정보" :{ "제품 이름" :"제품-1", "제품 가격" :1000 }}{ "제품 정보" :{ "제품 이름" :"제품-3", "제품 가격" :2000 }}