我在这里尝试保存名称为 courseTitle 的集合 数据库使用 monggose和nodejs ,如果存在任何集合 同时保存相同的名称( courseTitle ),然后它应该替换现有的名称 采集。如果我保存,如何在不使用删除()和保存()的情况下用新集合替换现有集合。
我的方法:首先我删除(删除())集合(如果存在),然后再次使用相同名称保存(save())。
还有其他相同的技术吗?
Converter
答案 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 } )