使用mongoose和nodejs用全新的同名替换整个集合

时间:2015-12-28 07:23:54

标签: node.js mongodb mongoose

  

我在这里尝试保存名称为 courseTitle 的集合   数据库使用 monggose和nodejs ,如果存在任何集合   同时保存相同的名称( courseTitle ),然后它应该替换现有的名称   采集。如果我保存,如何在不使用删除()保存()的情况下用新集合替换现有集合。

     

我的方法:首先我删除(删除())集合(如果存在),然后再次使用相同名称保存(save())。

     

还有其他相同的技术吗?

Converter

1 个答案:

答案 0 :(得分:0)

您可以使用mongoose findOneAndUpdate来实现类似的功能而不会消除集合。我的猫鼬有点不稳定,但我认为这样可行。

Vcevents.findOneAndUpdate({}, vcevents.toObject(), {upsert: true}, function(err, doc){ //execute query });

另一个可能的选择是使用capped collection。你可以初始化集合的大小。这样,您制作的每个插页都应该删除最旧的文档,并将其替换为最新的文档。我从来没有亲自使用过限制的集合,但理论上它应该如何根据文档工作。我不知道这么小的限制是否会给它带来任何问题。

db.createCollection("Vcevents", { capped : true, size : 5242880, max : 1 } )