1
我有這個代碼的兩個問題。 1)只有beerObjects的最後一個元素被保存到數據庫中。 2)保存到數據庫的最後一個元素(n = beerObjects.length)有n個重複項。Mongoose將多個項目添加到數據庫
function addBeersToDatabase(beerObjects) {
for (i = 0; i < beerObjects.length; i++) {
console.log(beerObjects[i].beerId);
var currentBeer = beerObjects[i];
// check if beer is already in database
Beer.findOne({'beerId': currentBeer.beerId}, function(err, beer){
if (err) {
handleError(err);
}
if (beer) {
// beer is already in database
}
else {
// add new beer to database
console.log(currentBeer.beerId);
var newBeer = new Beer();
newBeer.beerId = currentBeer.beerId;
newBeer.name = currentBeer.name;
newBeer.description = currentBeer.description;
newBeer.abv = currentBeer.abv;
newBeer.image = currentBeer.image;
newBeer.save(function(err) {
if (err) {
throw err;
}
});
}
});
}
}
我想遍歷每個啤酒,並保存其到數據庫中的信息。我用findOne來防止重複,但這是行不通的。第一個console.log()語句打印每個啤酒ID,但seconds console.log()語句多次打印最後一個啤酒ID。