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

MongoDB에서 $project를 사용하여 배열의 특정 필드를 표시하고 다른 필드는 무시하는 방법은 무엇입니까?

<시간/>

특정 필드를 표시하려면 $unwind와 함께 $project를 사용합니다. 필드를 무시하려면 0으로 설정하십시오. 문서로 컬렉션을 생성합시다 -

> db.demo731.insertOne({ "ProductInformation": [ { ProductId:"Product-1", ProductPrice:80 }, { ProductId:"Product-2", ProductPrice:45 }, { ProductId:"Product-3", ProductPrice:50 } ] } );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5eac5efd56e85a39df5f6341")
}

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

> db.demo731.find();

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

{ "_id" : ObjectId("5eac5efd56e85a39df5f6341"), "ProductInformation" : [ { "ProductId" : "Product-1", "ProductPrice" : 80 }, { "ProductId" : "Product-2", "ProductPrice" : 45 }, { "ProductId" : "Product-3", "ProductPrice" : 50 } ] }

다음은 MongoDB에서 $project를 사용하여 배열의 특정 필드를 표시하는 쿼리입니다 -

> db.demo731.aggregate([
...    { $unwind: "$ProductInformation" },
...    { $match: { "ProductInformation.ProductPrice": 80} },
...    { $project: {_id: 0,"ProductInformation.ProductPrice":0}}
... ])

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

{ "ProductInformation" : { "ProductId" : "Product-1" } }