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

MongoDB 객체 배열에서 다른 객체의 속성을 비교하는 방법은 무엇입니까?

<시간/>

속성을 비교하려면 $indexOfArray와 함께 $let을 사용하십시오. 먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.demo366.insertOne(... {...... "이름" :"크리스",... "세부 정보" :[... {... "ID" :"John1" ,... "값" :"테스트"... },... {... "Id" :"John2",... "값" :18... },... {.. . "Id" :"John3",... "value" :20... }... ]}... );{ "승인됨" :true, "insertedId" :ObjectId("5e57ddd92ae06a1609a00ae7")} 

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

> db.demo366.find();

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

{ "_id" :ObjectId("5e57ddd92ae06a1609a00ae7"), "이름":"크리스", "세부 정보":[ { "Id":"John1", "value":"test" }, { "Id" :"John2", "값" :18 }, { "Id" :"John3", "값" :20 } ]}

다음은 MongoDB 객체 배열에서 서로 다른 객체의 속성을 비교하는 쿼리입니다 -

> db.demo366.find(... {"$expr":{... "$let":{... "vars":{... "john2":{"$arrayElemAt":["$details",{"$indexOfArray":["$details.Id","John2"]}]},... "john3":{"$arrayElemAt":["$details",{"$ indexOfArray":["$details.Id","John3"]}]}... },... "in":{"$lt":["$$john2.value","$$john3. 값"]}}... }})

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

{ "_id" :ObjectId("5e57ddd92ae06a1609a00ae7"), "이름":"크리스", "세부 정보":[ { "Id":"John1", "value":"test" }, { "Id" :"John2", "값" :18 }, { "Id" :"John3", "값" :20 } ] }