MongoDB用id 1替换整个文档
奎。替换id为1的整个文档 db.emp.save({u id:1})MongoDB用id 1替换整个文档,mongodb,Mongodb,奎。替换id为1的整个文档 db.emp.save({u id:1}) 是否正确?您可能正在寻找mongodb的方法。它可以用作: db.restaurant.replaceOne( { "_id" : "1", "somfield" : "Old value" }, { "_id" : "1", "somfield" : "New value", "additional" : "addedField" } ); 注意-如果要替换的文档的过滤器是第一个参数,那么第
是否正确?您可能正在寻找mongodb的方法。它可以用作:
db.restaurant.replaceOne(
{ "_id" : "1", "somfield" : "Old value" },
{ "_id" : "1", "somfield" : "New value", "additional" : "addedField" }
);
注意-如果要替换的文档的过滤器是第一个参数,那么第二个参数就是要替换它的文档。让我们跳进shell,看看
保存
方法
> db.test.save
function (obj, opts) {
if (obj == null)
throw Error("can't save a null");
if (typeof(obj) == "number" || typeof(obj) == "string")
throw Error("can't save a number or string");
if (typeof(obj._id) == "undefined") {
obj._id = new ObjectId();
return this.insert(obj, opts);
} else {
return this.update({_id: obj._id}, obj, Object.merge({upsert: true}, opts));
}
}
>
现在,如果我们把逻辑简化为简单的步骤
对象上不存在\u id
- 创建一个新的ObjectId
- 将字段附加到对象
- 调用
对传入选项的集合进行保存insert
\u id
存在于对象上
- 将传入的选项与
合并,这样opt{upsert:true}
+{a:1,b:2}
将是{upsert:true}
{a:1,b:2,upsert:true}
- 使用合并选项调用集合的更新,并查询对象
\u id