种子MongoDB数据

时间:2019-01-25 11:06:42

标签: node.js mongodb express mongoose seeding

仅当收集的食物等于0时,下面的函数才会将数据添加到Food集合中。这个想法是只能给数据库播种一次。

这很好用。但是,我不确定这是最佳做法。

我的问题:如果我想在数据库中添加更多数据怎么办?我可以简单地更改if语句以使其遍历数据,但这是处理此问题的正确方法吗?

function seedfoods() { 
//add the foods to the database

Food.count([], function (err, count) {
console.log(count)

if (count === 0){    

data.forEach(function(seedfoods){
Food.create(seedfoods, function(err, Food){
if(err){
console.log(err)
}
});
});
}
});
}

这是数据的样子:

var data = [


{ 
name: "Avocados",
easyFood: true,
phase1: true,
about: "Yum Avocados",
},

{ 
name: "Milk",
easyFood: true,
phase1: true,
about: "Yum Milk",
},

{ 
name: "Apples",
easyFood: true,
phase1: true,
about: "Yum Apples",
},


]

1 个答案:

答案 0 :(得分:0)

您可能会在MongoDB中使用 upsert 功能,只需从种子数据中找到先前插入的文档,然后upsert将通过种子比较插入MongoDB中不存在的新数据。