Mongoose如何根据自定义字段更新(如果存在)。否则插入
我正在构建一个mongoDB数据库,用于保存来自多个不同系统的销售数据。每个系统都是通过我为数据库创建的节点/ mongoose / Express API集成的。通常,您需要检查id以确定记录是否已存在,如果记录不存在则将其插入。但由于来自这些不同来源的ID在技术上可能会重叠,因此我需要一个系统来确保源只能更新最初来自该源的记录。所以我添加了一个名为“external_ID”的列,其中保存了来自源的记录ID,另一列称为“集成ID”,这对于发送数据的特定系统是唯一的。但是为了使这个想法起作用,我只需要更新这两列匹配,否则插入新记录。这可能与MongoDB有关,还是我接近这个错误?
非常感谢。
回答如下:在upsert
上使用update()
。当没有文档符合查询条件时,它将创建一个新文档。
db.collection.update(<query>, <update>, { upsert: true })
您可以在Upsert Behavior文档中找到更多详细信息