【问题标题】:I want to delete a specific patient from my array [duplicate]我想从我的数组中删除一个特定的病人[重复]
【发布时间】:2016-04-15 20:35:37
【问题描述】:

我想从数组中删除一个病人,这可能在 我的情况,我找了一些例子,但找不到类似的 场景。任何人都可以告诉我如何删除患者,如果是的话 可能。

{
    "_id" : ObjectId("57113238bde91693e9ff69e7"),
    "docname" : "Arthur Hovsepyan",
    "job_desc" : "Hepatologist",
    "sex" : "male",
    "jobtype" : "fulltime",
    "office" : "room 448",
    "email" : "arturchik@hotmail.com",
    "phone_number" : 862124343,
    "address" : "68 Peterburg street,waterford",
    "hours" : 12,
    "patients" : [
        {
            "name" : "Jenny Power",
            "ward_no" : 1,
            "sex" : "female",
            "termdays" : 2,
            "illness_type" : "minor",
            "age" : 22,
            "phone_number" : 877285221,
            "address" : "63 Johnston street ,Waterford"
        },
        {
            "name" : "Marie Peters",
            "ward_no" : 2,
            "sex" : "female",
            "termdays" : 0,
            "illness_type" : "minor",
            "age" : 21,
            "phone_number" : 862145992,
            "address" : "99 Grange,Waterford"
        },
        {
            "name" : "Philip John",
            "ward_no" : 2,
            "sex" : "male",
            "termdays" : 10,
            "illness_type" : "serious",
            "age" : 31,
            "phone_number" : 861125981,
            "address" : "12 Monvoy Bridge,Waterford"
        },
        {
            "name" : "Marta Peters",
            "ward_no" : 3,
            "sex" : "female",
            "termd7ays" : 0,
            "illness_type" : "minor",
            "age" : 31,
            "phone_number" : 862125981,
            "address" : "100 Grange Manor,Waterford"
        }
    ]
}

【问题讨论】:

  • 您的查询的预期结果是什么?
  • 结果将是例如 Marie Peters 和她的所有详细信息将从数组中删除
  • 你是放真实数据还是测试数据?

标签: arrays mongodb mongodb-query


【解决方案1】:

文档是here

你想要

db.foo.update({}, {
    $pull: { 
        patients: {
            name: "Jenny Power"
        }
    }
})

【讨论】:

  • 您应该使用updateOneupdateMany(),因为update() 已被弃用。
  • 弃用通知在 shell 中有点滞后,但它并没有使@user3100115 的一般声明不真实。毕竟没有人会在“shell”中编写“应用程序”。所以它可能是一个.updateOne() 和目标文档的_id。还看到@ 的东西?这是人们知道您在与“他们”交谈的唯一方式。否则你的 cmets 只是在“自言自语”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-16
  • 1970-01-01
  • 2022-01-25
  • 2020-11-02
相关资源
最近更新 更多