我在第一次插入时有一个JSON结构
collection.insert(query.query, function(err, docs) {
callback(err,docs);
dbCon.close();
});
JSON结构:
"employees":[
{"_id":1, "lastName":"Doe"},
{"_id":2, "lastName":"Smith"},
{"_id":3,"lastName":"Jones"}
]
当我第一次将此JSON插入mongodb时,插入时没有任何错误。 当我再次尝试在同一个数据库上插入时,使用以下JSON
"employees":[
{"_id":2, "lastName":"Smith"},
{"_id":5, "lastName":"Peter"},
{"_id":6,"``lastName":"James"}
]
现在mondo db正在抛出重复键错误。 有没有办法可以省略“_id”:2并将“_id”:5和“_id”:6插入mongo?
请帮帮我..
答案 0 :(得分:0)
您可以在案件中执行upsert:
db.people.update(
{ name: "Andy" },
{
name: "Andy",
rating: 1,
score: 1
},
{ upsert: true }
)
如果第一个查询获得一个空白集合,那么如果没有名称为Andy的Recrod,它将插入数据,这将插入一个。
答案 1 :(得分:0)
第一次插入文档
{"_id":2, "lastName":"Smith"}
。
第二次插入文档{"_id":2, "lastName":"Smith"}
。
他们的ids是相同的,不是唯一的。
建议由mongdb自动创建id。
您可以添加以下代码:
collection.findOne({"_id":2}.exec(function(err,result){
if(!result){
collection.insert(XXX);
}
}));