使用Mongoose将文档移动到另一个集合

时间:2016-07-05 10:54:37

标签: node.js mongodb mongoose

我正在尝试根据这种方法Saving Mongoose object into two collections将文档移动到MongoDB中的另一个集合。

在示例中,他展示了如何创建两个新对象。我的目标是将它从一个集合移动到另一个集合。

更具体一点:在文档中,我有一个最终完成的任务列表,然后应该在此文档中移动到另一个数组。但是我需要能够查询所有未完成的内容,这应该可以使用两个集合。

1 个答案:

答案 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

})