Node.js 将集合文档插入mongodb中的其他集合

Node.js 将集合文档插入mongodb中的其他集合,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我在mongodb数据库中有两个不同的文档集合。在我的新兵收藏中,我有很多文件。我想将文档从招聘集合添加到员工集合 这是我的部分代码 function register(){ $http({ url:'/employee', method:'post', data:data // data is what i get from findById query. }).then(function(

我在mongodb数据库中有两个不同的文档集合。在我的新兵收藏中,我有很多文件。我想将文档从招聘集合添加到员工集合 这是我的部分代码

function register(){
        $http({
            url:'/employee',
            method:'post',
            data:data // data is what i get from findById query.
        }).then(function(result){
            vm.cancel();
            vm.toast();
        },function(err){
            console.log(err);
        })
这里的数据是我从新兵收集的findById中得到的。现在,我想在employees collection中存储相同的数据。我尝试了:

var emp = require('../models/employees.js');
 router.post('/',function(req,res){
console.log(req.body);
var register = new emp(req.body);
//console.log(register);
register.save(function(err, respond) {
    if (err) {
        throw err;
    } else {
        res.json(respond);
    }
})
});
我认为我的控制台显示的代码很好

MongoError: E11000 duplicate key error index: humanResource.employees.$_id_ dup
 key: { : ObjectId('57395146b4c73790056a3770') }

任何人都可以建议我如何在其他集合中插入此类文档。

您的错误是,您正在创建的文档具有已存在于employees集合中的_id。 问题是您正在接收招聘数据,并将其与从招聘中传递的_id一起直接传递到employees集合。您应该尝试复制数据,但不包括_id字段。Mongo将自动为您的employees集合生成一个_id。 像这样的,

var emp = require('../models/employees.js');
router.post('/',function(req,res){
      console.log(req.body);
       delete req.body._id;
      var register = new emp(req.body);
      register.save(function(err, respond) {
if (err) {
      throw err;
} else {
     res.json(respond);
}
});