2012-06-26 45 views
4

我正在使用Node.js本地驅動程序。以下罰款作品爲什麼MongoDB無法在一行中插入兩次相同的JSON?

db.collection("test").insert({hello:'world_safe'}, {safe: true}, function(err, result) { 
    if (err) throw err; 
    db.collection("test").insert({hello:'world_safe'}, {safe: true}, function(err, result) { 
     if (err) throw err; 
     db.close(); 
    }); 
}); 

我在數據庫中保存

{ "hello" : "world_safe", "_id" : ObjectId("4fe978c8b8a5937d62000001") } { "hello" : "world_safe", "_id" : ObjectId("4fe978c8b8a5937d62000002") }

但是下面當我調整如下

var json = {hello:'world_safe'}; 
db.collection("test").insert(json, {safe: true}, function(err, result) { 
    if (err) throw err; 
    db.collection("test").insert(json, {safe: true}, function(err, result) { 
     if (err) throw err; 
     db.close(); 
    }); 
}); 

我收到以下錯誤

MongoError: E11000 duplicate key error index:

爲什麼我會得到e恐怖消息?

回答

0

我同意CD,但解決的辦法是比這更容易:

/* ... before insert */ 

if(typeof(collection._id) != 'undefined') 
     delete collection._id; 

/* ... now insert */ 
相關問題