Node.js 使用mongoose和nodejs将整个集合替换为同名的新集合

Node.js 使用mongoose和nodejs将整个集合替换为同名的新集合,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,在这里,我试图将名为CourseTile的收藏保存在中 使用monggose和nodejs的数据库,以及 保存时使用相同的名称(CourseTile),则应替换现有名称 收集如何在保存时用新集合替换现有集合,而不使用remove()和save() 我的方法:首先删除(删除())集合(如果存在),然后再次以相同的名称保存(保存()) 还有其他方法可以做到同样的吗 您可以使用mongoose实现类似的功能,而无需删除集合。我的猫鼬有点不稳,但我想这会管用的 Vcevents.findOneAndUp

在这里,我试图将名为CourseTile的收藏保存在中 使用monggose和nodejs的数据库,以及 保存时使用相同的名称(CourseTile),则应替换现有名称 收集如何在保存时用新集合替换现有集合,而不使用remove()save()

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

还有其他方法可以做到同样的吗

您可以使用mongoose实现类似的功能,而无需删除集合。我的猫鼬有点不稳,但我想这会管用的

Vcevents.findOneAndUpdate({}, vcevents.toObject(), {upsert: true}, function(err, doc){ //execute query });
另一个可能的选择是使用。您可以初始化集合的大小。这样,您所做的每一次插入都应该删除最旧的文档,并用最新的文档替换它。我个人从未使用过封顶收藏,但根据文档,理论上应该是这样。我不知道这么小的限制是否会给它带来任何问题

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

您有什么理由想在保存时擦除整个集合吗?这似乎是一个持续不断的坏主意。集合中是否始终只有一个文档?是的,因为我正在使用此集合运行视频,其中包含多个事件作为对象。第一次在此集合中保存多个事件(对象)后,我可以返回并删除/添加/修改任何事件(对象),只有在单击“保存”按钮时,它才会反映在数据库中。首先,我在一个对象中添加所有事件,然后抛出这个对象以保存/更新到db。我不会直接对db进行更改。首先,所有修改将存储在一个包含多个事件的对象中,然后将该对象保存在db中。
db.createCollection("Vcevents", { capped : true, size : 5242880, max : 1 } )