如何replaceMongoDB中的项目
我通过API请求具有唯一ID的JSON对象。 其中一些项目已经存在于我的MongoDB数据库中。 有没有这样的function:
Collection.replace({ id: '12345' }, JSON_object)
它首先查找带有id字段的对象,然后用新对象replace它(如果find),或者如果找不到匹配的对象,则将新对象添加到集合中?
我正在使用mongoose在node.js中执行此操作。 不幸的是,ObjectId的实现似乎有错误,所以我正在寻找一个通用的方法。
MongoDb核心function更新有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标识符。
var ObjectID = db.bson_serializer.ObjectID; db.collection.update({_id: ObjectID('423523452')}, {foo: 'bar'}, true)