我在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获得的数据。现在我希望存储在员工集合中的相同数据。我试过这样:
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') }
任何人都建议我如何在其他馆藏中插入此类文件。
答案 0 :(得分:1)
您的错误是说您正在创建的文档中有一个已存在于employees集合中的_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);
}
});