我正在尝试根据这种方法Saving Mongoose object into two collections将文档移动到MongoDB中的另一个集合。
在示例中,他展示了如何创建两个新对象。我的目标是将它从一个集合移动到另一个集合。
更具体一点:在文档中,我有一个最终完成的任务列表,然后应该在此文档中移动到另一个数组。但是我需要能够查询所有未完成的内容,这应该可以使用两个集合。
答案 0 :(得分:4)
所以你必须两次注册Schema
let ChangeSchema = new Schema({
title: String,
version: Number
})
mongoose.model('First', ChangeSchema)
mongoose.model('Second', ChangeSchema)
然后你可以像这样交换他们
mongoose.model('First').findOne({ _id: id }, function(err, result) {
let swap = new (mongoose.model('Second'))(result)
/* you could set a new id
swap._id = mongoose.Types.ObjectId()
swap.isNew = true
*/
result.remove()
swap.save()
// swap is now in a better place
})