【mongodb】更新完成如何返回更新的数据?

我执行了一条数组的更新操作,如何返回更新的数据?

现有document

{
    "_id": "596dd516309ec718d13e3bf5",
    "name": "三年级1班",
    "subs": [
         {
            "_id": "596dd5cbf8c44318e4675de2",
            "name": "语文",
         }
    ]
}

我要新增一个数学的科目:

classModel.update({
     _id: "596dd516309ec718d13e3bf5"
  },{
     $addToSet: {
         subs: {
             name: '数学'
         }
     }
  })

更新成功之后,返回结果是:

{
    "n": 1,
    "nModified": 1,
    "ok": 1
}

我想在结果中返回新增科目数学的_id,怎么做?

阅读 12.7k
5 个回答

看了一下题主评论说的是用的 mongoose,并且根据你的需求可以直接用:

Model.findByIdAndUpdate()

options 中有个 new:new: bool - true to return the modified document rather than the original. defaults to false

{ new: true } 即可:

文档:http://mongoosejs.com/docs/ap...

大家来看看,帮忙出个主意

再查找一遍嘛:

classModel.find({
     _id: "596dd516309ec718d13e3bf5"
  })

增加的科目_id不是你给出的吗?从你自己这端应该能拿到,为什么要让它返回?
如果有必要取更新后的文档,findAndModify应该是你要找的命令。

classModel.findByIdAndUpdate('596dd516309ec718d13e3bf5', {
  $addToSet: {
    subs: {
      name: '数学'
    }
  }
}, {
  new: true
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题