你能解释一下"复制/克隆"是什么意思吗?你要在数据库中创建一个重复的文档吗?或者你只是想让你的程序中有两个var
的重复数据?
如果你这么做:
Model.findById(yourid).exec(
function(err, doc) {
var x = doc;
Model.findById(yourid).exec(
function(err, doc2) {
var y = doc2;
// right now, x.name and y.name are the same
x.name = "name_x";
y.name = "name_y";
console.log(x.name); // prints "name_x"
console.log(y.name); // prints "name_y"
});
});
在这种情况下,x
和y
将是程序中同一文档的两个"副本".
或者,如果您想在数据库中插入一份新的文档副本(尽管我假设使用的是不同的_id
),则如下所示:
Model.findById(yourid).exec(
function(err, doc) {
var d1 = doc;
d1._id = /* set a new _id here */;
d1.isNew = true;
d1.save(callback);
}
);
或者,如果您从一开始就这样做,也就是说您创建了一些文档d1
,那么您可以在不设置_id
的情况下调用save
两次:
var d1 = new Model({ name: "John Doe", age: 54 });
d1.save(callback);
d1.save(callback);
现在,数据库中将有两个不同_id
的文档,所有其他字段都相同.
这能澄清一点吗?