在Mongoose中更新或创建

时间:2017-07-26 21:46:05

标签: javascript node.js mongodb mongoose

我有一个正在从不同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 });
    ]
  });
});

我需要做一些额外的检查,所以如果我只是做一个简单的搜索来决定是否更新或插入,那就太好了。但它可能效率太低。

0 个答案:

没有答案