私は名前の配列を持っています:
var names = ["ケリー", "エイミー", "マーク"]
Person が nodejs の単なる Mongoose モデルであると仮定すると、次のようにして、各名前をドキュメントとして 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 duplicate key error index:..... dup key: {: "Mark"}」というメッセージが引き続き表示されるため、問題が発生しています。また、リスト内の各名前ではなく、「マーク」(リスト内の最後の要素) を 3 回挿入しようとしているようです。
ループ内で現在の人物の名前を出力しようとすると (console.log(personDoc.name); を使用)、「マーク」が 3 回表示されます...「マーク」のみが保存されているようですデータベースと他の誰も...これに対処する適切な方法は何ですか?