도시와 국가라는 두 가지 컬렉션이 있습니다. 시에서는 내가 국가 컬렉션에 대한 참조 인 country
필드를 가지고 있습니다.참조로 찾기
db.city.find({ country.name: "USA" })
하지만 반환 빈 배열을 :
그래서 나는 같은 발견했습니다. 표현식없이 find를 사용하면 모든 결과가 반환되고 "USA"도 반환됩니다.도시와 국가라는 두 가지 컬렉션이 있습니다. 시에서는 내가 국가 컬렉션에 대한 참조 인 country
필드를 가지고 있습니다.참조로 찾기
db.city.find({ country.name: "USA" })
하지만 반환 빈 배열을 :
그래서 나는 같은 발견했습니다. 표현식없이 find를 사용하면 모든 결과가 반환되고 "USA"도 반환됩니다.도시 컬렉션의 ID를 통해 해당 국가를 참조한다고 가정 할 때 재귀 적으로이 작업을 수행해야한다고 생각합니다. 이것은 가능한 해결책이 될 수
db.country.find({ name: "USA" }, function(err, country) {
db.city.find({ country: country.id }, function(err, cities) {
// do something with the data...
});
});
왼쪽 외부는 처리 콜렉션 "결합"의 문서에 필터링 같은 데이터베이스에서 다른 모음 조인 수행 집계 워크에 $lookup
연산자를 사용하는 것을 고려 :
db.city.aggregate([
{
"$lookup": {
"from": "country",
"localField": "country",
"foreignField": "_id", // <-- reference field from country collection
"as": "resultingArray"
}
},
{ "$match": { "resultingArray.name": "USA" } }
])
귀하의 contry 및 도시 컬렉션의 데이터 구조를 게시하십시오. – felix