使用Node在MongoDb中更新数组不起作用

时间:2016-03-26 17:08:56

标签: javascript node.js mongodb express

我绝对做了尽职调查,我无法弄清楚我做错了什么。任何帮助表示赞赏。

我在Mongo(旅行)收集了以下内容:

{
    "_id": ObjectId("56f5ee3dab124b181256ddf1"),
    "waypoints": [{
        "address": "",
        "sequenceNumber": 0
    }]
}

要更新waypoint.address,我已完成以下操作:

var tripId = new mongodb.ObjectID(waypoint.tripId);
    var db = resources.GetDbConn();
    db.collection('trips').update(
        { _id: tripId,
          'waypoints.sequenceNumber': waypoint.sequenceNumber
        },
        {$set: 
            { 'waypoints.$.address': waypoint.address}
        });

但是,这不起作用。我错过了,还是没有理解?

更新:

我终于弄明白了。 'waypoint.sequenceNumber'被存储为整数,但是,我将其作为字符串查询。啊。对我感到羞耻。

1 个答案:

答案 0 :(得分:0)

我认为问题在于_id字段是ObjectID(1),而不仅仅是字面整数1。