Easiest way to copy/clone a mongoose document instance?

前端 未结 5 1399
时光说笑
时光说笑 2020-12-09 09:31

My approach would be to get the document instance, and create a new one from the instance fields. I am sure there is a better way to do it.

5条回答
  •  余生分开走
    2020-12-09 10:03

    The following code to clone documents in Amelia's response above does not work:

    Model.findById(yourid).exec(
        function(err, doc) {
            var d1 = doc;
            d1._id = /* set a new _id here */;
            d1.save(callback);
        }
    );
    

    You also need to reset d1.isNew = true; as in:

    Model.findById(yourid).exec(
        function(err, doc) {
            doc._id = mongoose.Types.ObjectId();
            doc.isNew = true; //<--------------------IMPORTANT
            doc.save(callback);
        }
    );
    

提交回复
热议问题