0
我有名字的數組:如何正確保存與貓鼬+ nodejs對象的數組?
變種名稱=「凱利」,「艾米」,「標記」]
假設人只是爲了一個的NodeJS貓鼬模型......我要保存的每個名稱作爲文檔到MongoDB的下列要求:
for(var i = 0; i < names.length; i++) {
name_now = names[i];
Person.findOne({ name: name_now},
function(err, doc) {
if(!err && !doc) {
var personDoc = new PersonDoc();
personDoc.name = name_now;
console.log(personDoc.name);
personDoc.save(function(err) {});
} else if(!err) {
console.log("Person is in the system");
} else {
console.log("ERROR: " + err);
}
}
)
}
我有問題,我保持歌廳一個「錯誤創建時間表:MongoError:E11000重複鍵錯誤指數:..... DUP鍵:{」標記」}」。而且它似乎試圖將「標記」(列表中的最後一個元素)插入3次,而不是列表中的每個名稱。
當我嘗試打印出當前人在循環中的名稱(使用console.log(personDoc.name);)時,我得到了「標記」3次......並且它似乎只保存了數據庫中的「標記」,沒有其他人......處理這個問題的正確方法是什麼?
這很好,謝謝!但是我想在執行for循環之後,在同一個函數內做一個Person.find({})來獲取插入後的所有文檔。在執行Person.find({})之前,如何確保循環完成? – Rolando
@Damascusi最好作爲一個單獨的問題發佈,因爲它是不平凡的。首先進行一些搜索,因爲這是常見的情況。 – JohnnyHK