【发布时间】:2015-04-21 17:10:56
【问题描述】:
我正在尝试将嵌套数组中的对象中的 floor_num 值从 1 更新为 9000,在 Mongoose 中:
thingSchema.findById(thingID, function(err, lm) {
if (!lm){
console.log(err);
}
else {
lm.update({'style.maps.localMapArray.map_marker_viewID': req.body.map_marker_viewID},
{'$set': {
'style.maps.localMapArray.$.floor_num': 9000,
}
}, function(err) {
//update success
});
}
});
但我收到了这个 Mongo 错误:
MongoError: cannot use the part
(localMapArray of style.maps.localMapArray.map_marker_viewID) to traverse
the element ({localMapArray: [ { map_marker_viewID: "acympqswmkui",
floor_num: 1 } ]} code: 16837
我的架构:
var thingSchema = new Schema({
style: {
maps: {
localMapArray: [{
map_marker_viewID : String,
floor_num : Number
}],
}
}
});
【问题讨论】:
-
您的代码应该可以正常工作。仅当您不使用
$(位置运算符。) 进行更新时才会收到错误消息。 -
我同意。更新没问题。如果有的话,你能仔细检查一下你得到了什么错误吗?
标签: node.js mongodb mongoose mongodb-query