-1
으로 배열 하위 하위 문서를 누르면 내가 스키마 countrySchema
및 citySchema
는 몽구스
citySchema = {
cityName: String,
schools: [schoolSchema]
}
countrySchema = {
countryName: String,
cities: [citySchema]
}
나는 도시 스키마의 schools
배열에 학교를 밀어 할 수 있습니다.
나는 이미 countryId
및 cityId
알고, 그래서 나는
Country.findByIdAndUpdate(countryId, { $push: { 'cities.schools': school } }, (err, country) => {
//
});
같은 것을 추측하지만 난 학교가 속해있는 도시 지정하지 않기 때문에이 작동하지 않습니다.
어떻게 쿼리해야합니까? 어쩌면 그것은 또한 당신이 이미 cityId을 가지고 있기 때문에, 당신은 단순히 도시에서 "학교"경로에 학교를 밀어 수
Country.findOneAndUpdate({ _id: countryId, 'cities._id': cityId }, { $push: { 'cities.schools': school } }, (err, country) => {
//
});
하지만 'citySchema'에서 'City'모델을 만든 적이 없습니다. 내 '국가'모델에서 모든 스키마를 중첩하는 대신 모든 스키마에 대한 모델을 만드는 것이 더 좋은 아이디어일까요? – Jamgreen
그게 달려 있습니다. 그러나 citySchema에서 쿼리를 수행하는 경우 포함 된 문서가 아닌 별도의 문서를 사용하는 것이 좋습니다. 그렇다면 해당 국가를 삭제 한 후 "유효하지 않은"도시를 제거해야합니다. –