/*first Table*/
DBCollection coll = db.getCollection("orgmembers");
/*second table*/
DBObject lookupFields = new BasicDBObject("from", "orgcenters");
lookupFields.put("localField", "mappings.centerId");
lookupFields.put("foreignField", "_id");
lookupFields.put("as", "collegeDetails");
DBObject lookup = new BasicDBObject("$lookup", lookupFields);
orgcenters 스키마 _id foriegn 키를 비교하지 않습니다조회는
{"_id" : ObjectId("5496d0a50cf2abd6b103b1a2"), "code" : "CEN-DVG", "name" : "Davangere"}
orgmember 스키마 MongoDB의에서 조회가 foriegn 키 _id
과 비교하지 않는{ "dob" : "1989-01-13",
"firstName" : "Sandeep",
"mappings" : [ { "programId" : "5496d0cd0cf2abd6b103b1a6", "centerId" : "5496d0a50cf2abd6b103b1a2"}]
}
orgcenters 테이블이 { "_id를": ObjectId가을 ("5496d0a50cf2abd6b103b1a2"), "코드": "CEN-DVG", "이름": "다바 나게 레", } – aksy91
orgmember 테이블 { "생년월일"가 "1989년 1월 13일", "firstName을" "하기 Sandeep", "매핑"[ { "programId": "5496d0cd0cf2abd6b103b1a6" "centerId": "5496d0a50cf2abd6b103b1a2"}]}} – aksy91
에도 코드가 불완전하기 때문에 이러한 콜렉션을 집계하고 올바로 처리할지 여부를 대략적으로 추측 할 수 있도록 한 가지 실수가 즉시 있습니다. 즉, orgmember의 centerId는 문자열이며 orgcen의 _id는 문자열입니다. ters는 ObjectId입니다. 일치하지 않습니다. 동일한 데이터 유형을 사용해야합니다. – mtj