我的架构
let citySchema = new mongoose.Schema({
...
});
let countrySchema = new mongoose.Schema({
regions : [{
cities : [ref: 'City']
}]
});
问题 - 如何将现有城市插入选定(按_id)区域。 mongoose / mongodb自动添加一个区域的_id,我不想改变它,因为它应该保持稳定。
我目前尝试了findOneAndUpdate
的各种组合,但徒劳无功。我目前的查询:
Country
.findOneAndUpdate({
_id : knownCountryId,
'regions._id' : knownRegionId
},{
$push : { 'regions.$.cities' : existingCity._id }
},{
select : {
'regions' : {
$elemMatch : {
_id : knownRegionId
}
}
}
}).exec();
任何提示?
findOneAndUpdate
查询是正确的。问题出在测试中,它缓存了Country
对象的过时值。