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

MongoDB의 객체 ID 배열에 대해 $lookup을 수행하시겠습니까?

<시간/>

이를 위해 $lookup을 사용하십시오. 이것은 처리를 위해 "결합된" 컬렉션에서 문서를 필터링하기 위해 동일한 데이터베이스의 샤딩되지 않은 컬렉션에 대해 왼쪽 외부 조인을 수행합니다.

먼저 문서로 컬렉션을 만들어 보겠습니다. −

> db.demo395.insertOne({이름:"크리스"});{ "승인됨":true, "insertedId":ObjectId("5e5e782317aa3ef9ab8ab207")}> db.demo395.insertOne({이름:"David" });{ "승인됨" :true, "insertedId" :ObjectId("5e5e782317aa3ef9ab8ab208")}

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

> db.demo395.find();

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

{ "_id":ObjectId("5e5e782317aa3ef9ab8ab207"), "이름":"크리스" }{ "_id":ObjectId("5e5e782317aa3ef9ab8ab208"), "이름":"데이비드" }

문서로 두 번째 컬렉션을 만들자 -

> db.demo396.insertOne({"details" :[... ObjectId("5e5e782317aa3ef9ab8ab207"),... ObjectId("5e5e782317aa3ef9ab8ab208")... ]... }led... ){ "확인 " :true, "insertedId" :ObjectId("5e5e787817aa3ef9ab8ab209")}

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

> db.demo396.find();

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

{ "_id":ObjectId("5e5e787817aa3ef9ab8ab209"), "details":[ObjectId("5e5e782317aa3ef9ab8ab207"), ObjectId("5e5e782317aa3ef9ab8ab) 

다음은 개체 ID의 배열에 대해 $lookup을 수행하는 쿼리입니다 -

> db.demo396.aggregate([... { "$lookup":{... "from":"demo395",... "let":{ "details":"$details" }, ... "파이프라인":[... { "$match":{ "$expr":{ "$in":[ "$_id", "$$details" ] } } }... ],. .. "as":"출력"... }}... ])

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

["abidepre>{ "_id" :ObjectId("5e5e787817aa3ef9ab8ab209"), "details" :[ ObjectId("5e5e782317aa3ef9ab8ab207"), "5e5e782317aa3ef9ab8ab" ), "이름":"크리스" }, { "_id":ObjectId("5e5e782317aa3ef9ab8ab208"), "이름":"데이비드" } ] }