批量插入并忽略文档是否已经存在

时间:2019-08-01 07:33:22

标签: node.js mongodb mongoose

我有一个脚本,可以每天在特定时间抓取一个网站。我将接收到的数据转换成这样的对象数组:

Items = [ 
    {
      title: "some title", 
      url: "someurl.com/something" , 
      description: "some description"
     },
     {...} ,
     {...}
]

然后我使用一个foreach循环将数组的每个对象插入MongoDB:

Items.forEach( item => Collection.create(item));

现在,每天运行脚本时,它都会获取已插入数据库的所有先前数据和新数据。 我只想将新对象插入数据库。 我尝试了不同的方法,但是没有用。

请有人告诉我如何使它工作? 还有我用来插入数据库的forEach循环,我确定还有更好的方法。

1 个答案:

答案 0 :(得分:0)

在启用Update的情况下使用upsert,而不仅仅是插入数据库。

var your_document = { .... };

Model.update(your_document, your_document, options, callback)
// is sent as
Model.update(query, { $set: ......}, options, callback)