【问题标题】:inserting document of collections to another collections in mongodb将集合文档插入到 mongodb 中的另一个集合中
【发布时间】:2016-09-22 14:17:08
【问题描述】:

我在 mongodb 数据库中有两个不同的文档集合。在我的 recruits 收藏中,我有很多文件。我想将 recruit 集合中的 document 添加到 employee 集合 这是我的代码的一部分

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 获得的。现在我想存储在员工集合中的相同数据。我试过了:

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') }

任何人都建议我如何在另一个集合中插入此类文档。

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    你的错误是说你正在创建的文档有一个 _id 已经存在于员工集合中。 问题是您正在接收招聘数据并将其与从招聘中传递的 _id 一起直接传递给员工集合。您应该尝试复制数据但不包括 _id 字段。 Mongo 将自动为您的员工集合生成一个 _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);
    }
    });
    

    【讨论】:

      猜你喜欢
      • 2016-02-22
      • 2015-09-25
      • 1970-01-01
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多