2016-05-25 13 views
1

私はmongodbデータベースに2つの異なるコレクションを持っています。私のの募集コレクション私はたくさんの書類を持っています。そして私はここに私のコードの一部ですコレクションのドキュメントを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から得るものです。今私は、従業員に格納する同じデータがそうしようとしたcollection.i:私は、コードを使用して、その罰金は私のコンソールがいずれかで、このような文書を挿入する方法を私に示唆私

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

示し

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

考えます別のコレクション。

答えて

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); 
} 
}); 
関連する問題