在mongodb中向嵌入文档添加新数据

时间:2018-03-20 10:18:54

标签: php json mongodb

我一直在冲浪,我没有找到答案(一些类似的)我的问题,所以我在这里问。我在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']]
);

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

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

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