繁体   English   中英

如何克隆mongoose文档?

[英]How to clone a mongoose document?

这是复制/克隆mongoose文档实例的最简单方法的后续操作 ,这对我不起作用。

以下代码抛出“无法编辑Mongo _id”字段,而不是擦除._id并在集合中创建新文档。

有没有更好的方法将文档的所有值克隆到新文档中,以便进一步使用/测试/等?

我正在使用Mongoose 3.8.12 / Express 4.0,我还在下面的'undefined's1._id字段中创建了一个新的ObjectID。

router.route('/:sessionId/test/:testId')
    .post(function(req,res){        
        Session.findById(req.params.sessionId).exec(
        function(err, session) {
            var s1 = new Session();
                s1 = session;
                s1._id = undefined;

                console.log('posting new test', s1._id);      // your JSON
                s1.save(function(err) {
                    if (err)
                        res.send(err);

                    res.json( 'new session ', req.body );
                });
         }
    );
});

您需要为要克隆的文档创建新ID并将isNew设置为true,因此给定“session”是要克隆的文档:

session._doc._id = mongoose.Types.ObjectId();
session.isNew = true;
session.save(...);

答案是:

var s1 = new Session(session);
s1._id = undefined;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM