更新嵌套的子文档数组 - Mongoose

时间:2016-12-05 21:37:00

标签: node.js mongodb mongoose

目前我的一个文件

有以下结构
Company: {
   Buildings: [{
       Users: [ { _id: ObjectID, name: String, number: String } ]
   }]
}

我试图更新用户的姓名和号码,目前已在mongo中测试并验证了以下查询:

db.companies.update(
    { "_id": companyID, "buildings._id": buildingID, "buildings.users._id": userID }
    , 
    { $set: { "buildings.$.users.0.name": "A new name for the user" } }
);

当我使用mongoose

运行相同的确切查询时,此查询会正确更新
Company.findOneAndUpdate(
  { _id: companyID, "buildings._id": buildingID, "buildings.users._id": userID }
  ,
  { $set: { "buildings.$.users.0.name": newName }})

我没有收到任何错误,但未执行更新。

深层嵌套数组的更新是否在Mongoose上不可用?

1 个答案:

答案 0 :(得分:0)

this问题的替代答案中找到答案:

答案:https://stackoverflow.com/a/28952991/1327815