【问题标题】:Add new data to embedded documents in mongodb向 mongodb 中的嵌入文档添加新数据
【发布时间】:2018-03-20 10:18:54
【问题描述】:

我一直在 SO 上冲浪,但我还没有找到我的问题的答案(一些类似的),所以我在这里问。自 2 周以来,我一直在使用 mongodb 和 php,并且我有一个数据库,我想将新数据添加到其中一个嵌入式/嵌套文档中,但我做不到。

这是我目前所拥有的。

{    
    "_id" : ObjectId("5ab0dc4fb57dce17e0002c5c"),
    "meter" : "meter_2",
    "data" : {
        "magnitude1" : {
            "date" : "05/03/2013 08:13:18",
            "value" : 200
        },
        "magnitude2" : {
            "date" : "30/06/2014 23:46:05",
            "value" : 126
        }
    }
}

现在,我正在尝试将新数据添加到子文档magnitude。像这样的:

{    
    "_id" : ObjectId("5ab0dc4fb57dce17e0002c5c"),
    "meter" : "meter_2",
    "data" : {
        "magnitude1" : {
            "date" : "05/03/2013 08:13:18",
            "value" : 200,
            "somedata" : "somevalue"
        },
    }
}

我已经尝试了很多东西,就像下面这个一样,但显然它不会插入任何数据。

$center->updateOne(
    ['_id' => new \MongoDB\BSON\ObjectID('5ab0dc4fb57dce17e0002c5c'), 'data.magnitude1'],
    ['$set' => ['somedata' => 'somevalue']]
);

谁能帮我解决这个问题?

【问题讨论】:

  • 试试$center->updateOne( ['_id' => new \MongoDB\BSON\ObjectID('5ab0dc4fb57dce17e0002c5c')], ['$set' => ['data.magnitude1.somedata' => 'somevalue']] );
  • @Veeram 它有效!非常感谢!!!

标签: php json mongodb


【解决方案1】:

感谢@Veeram,这个问题已经解决。以下是答案,以防将来有人发现它有用。

$center->updateOne(
    ['_id' => new \MongoDB\BSON\ObjectID('5ab0dc4fb57dce17e0002c5c')],
    ['$set' => ['data.magnitude1.somedata' => 'somevalue']]
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多