Seed MongoDB Data - PullRequest
       20

Seed MongoDB Data

0 голосов
/ 25 января 2019

Функция ниже добавляет данные в базу данных, в коллекцию 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 голосов
/ 25 января 2019

Вы можете перейти к функции upsert в MongoDB, просто найдите ранее вставленные документы из исходных данных, и upsert вставит новые данные, которые не существуют в MongoDB, при сравнении начальных значений.

...