MongoDb从文档中删除子文档 [英] MongoDb remove subdocument from document

查看:109
本文介绍了MongoDb从文档中删除子文档的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含以下数据的集合:

I have a collection with a following data:

{

  "_id" : ObjectId("4e3951905e746b3805000000"),
  "m" : "hello",
  "r" : [{
      "_id" : ObjectId("4e3951965e746b8007000000"),
      "u" : 3,
      "m" : "response1"
    }, {
      "_id" : ObjectId("4e39519d5e746bc00f000000"),
      "u" : 3,
      "m" : "response2"
    }, {
      "_id" : ObjectId("4e3953dc5e746b5c07000000"),
      "u" : 3,
      "m" : "response3"
    }, {
      "_id" : ObjectId("4e3953ea5e746bd40f000001"),
      "u" : 3,
      "m" : "response"
    }],
  "u" : 3,
  "w" : 3
}
{
  "_id" : ObjectId("4e3952c75e746bd807000001"),
  "m" : "asdfa",
  "r" : [{
      "_id" : ObjectId("4e39544e5e746bc00f000001"),
      "u" : 3,
      "m" : "response5"
    }],
  "u" : 3,
  "w" : 3
}

任何人都可以建议如何从"r"键中删除子文档 只有子文档ID,我要删除吗?

Can anyone suggest how to remove a subdocument from a 'r' key having only id of subdocument, I am going to del?

例如我想删除一个ID为4e39519d5e746bc00f000000的子文档 因此,应删除此子文档

for instance i want to del a subdocument with id 4e39519d5e746bc00f000000 So this subdocument should be deleted

{
  "_id" : ObjectId("4e39519d5e746bc00f000000"),
  "u" : 3,
  "m" : "response2"
},

推荐答案

很简单,您只需要使用

It's easy, you just need to use $pull operator:

db.items.update( {}, 
{ $pull : { r : {"_id": ObjectId("4e39519d5e746bc00f000000")} } }, false, false )

这篇关于MongoDb从文档中删除子文档的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆