我通過API請求具有唯一ID的JSON對象。其中一些項目已經存在於我的MongoDB數據庫中。有一些像這樣的功能:如何更換MongoDB中的項目
Collection.replace({ id: '12345' }, JSON_object)
其尋找的對象與id字段擺在首位,然後用新的對象來替換它,如果它發現一個,或將新對象添加到集合,如果找不到匹配的對象?
我這樣做在node.js與貓鼬。不幸的是,ObjectId的實現似乎存在問題,所以我正在尋找一種通用的方法。
我通過API請求具有唯一ID的JSON對象。其中一些項目已經存在於我的MongoDB數據庫中。有一些像這樣的功能:如何更換MongoDB中的項目
Collection.replace({ id: '12345' }, JSON_object)
其尋找的對象與id字段擺在首位,然後用新的對象來替換它,如果它發現一個,或將新對象添加到集合,如果找不到匹配的對象?
我這樣做在node.js與貓鼬。不幸的是,ObjectId的實現似乎存在問題,所以我正在尋找一種通用的方法。
MongoDB的核心功能更新有UPSERT選項:
db.collection.update(criteria, objNew, upsert, multi)
將插入objNew如果沒有文件匹配標準。嘗試:
db.collection.update({ _id: ObjectID('423523452') }, JSON_object, true)
http://www.mongodb.org/display/DOCS/Updating#Updating-update%28%29
請記住,你必須使用db.bson_serializer.ObjectID
功能,以獲得MongoDB的IDS。
var ObjectID = db.bson_serializer.ObjectID;
db.collection.update({_id: ObjectID('423523452')}, {foo: 'bar'}, true)