我有一个正在从不同API填充的数据库。
现在我只是从数据库中删除所有内容并填充所有数据。
然而,这不是一个好方法,因为我想保留原始文件。
检查对象是否存在的最佳方法是什么?如果是,则应使用新数据进行更新,如果不是,则应仅创建。所以我想创建一个updateOrCreate函数。
我已经阅读了一些关于upsert
的内容,这似乎就是这样做的。但是,创建循环不是那么有效:
itemsToBePopulatedWith.forEach(item => {
Item.findOne({ name: item.name }).then(existingItem => {
if (existingItem) {
existingItem.date = item.date;
existingItem.user = item.user;
...
existingItem.save();
} else {
Item.create({ date: item.date, user: item.user });
]
});
});
我需要做一些额外的检查,所以如果我只是做一个简单的搜索来决定是否更新或插入,那就太好了。但它可能效率太低。