Mongoose和嵌套数组

问题描述 投票:1回答:1

我的架构

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();

任何提示?

mongoose
1个回答
0
投票

findOneAndUpdate查询是正确的。问题出在测试中,它缓存了Country对象的过时值。

© www.soinside.com 2019 - 2024. All rights reserved.