首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MongoDB中向对象添加值

在MongoDB中向对象添加值
EN

Stack Overflow用户
提问于 2014-12-11 09:42:35
回答 1查看 81关注 0票数 3

我在MongoDB中有json对象。我想为这个对象添加一个值,例如在locations -> ->传感器中。我知道机器、位置和传感器的_id。做这件事最有效的方法是什么?

代码语言:javascript
复制
    array(
    "_id" => '547f2e4cb54b3a96203c9869',
    "name" => Array (
        "nl" => "klant1"
    ),
    "locations" => Array (
        Array (
            "_id" => "1",
            "name" => Array (
                "nl" => "location1",
            ),
            "machines" => Array (
                Array (
                    "_id" => "1",
                    "name" => Array (
                        "nl" => "boot1"
                    ),
                    "sensors" => Array (
                        Array (
                            "_id" => "1",
                            "log" => Array (
                            )
                        ),
                        Array (
                            "_id" => "2",
                            "log" => Array (
                            )
                        )
                    )
                ),
                Array (
                    "_id" => "2",
                    "name" => Array (
                        "nl" => "boot2"
                    ),
                    "sensors" => Array (
                        Array (
                            "_id" => "1",
                            "log" => Array (
                            )
                        ),
                        Array (
                            "_id" => "2",
                            "log" => Array (
                            )
                        )
                    )
                ), 
                Array (
                    "_id" => "3",
                    "name" => Array (
                        "nl" => "boot3"
                    ),
                    "sensors" => Array (
                        Array (
                            "_id" => "1",
                            "log" => Array (
                            )
                        ),
                        Array (
                            "_id" => "2",
                            "log" => Array (
                            )
                        )
                    )
                )
            )
        )
    )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-16 00:27:08

超容易的。您可以执行findAndModify调用。或者,如果您想手动做得更多,可以这样做:

代码语言:javascript
复制
$collection = $mongo->your_collection;
$obj = $collection->findOne($query);
$obj = $obj['locations']['machines']['sensors'][] = $new_sensor;
$collection->save($obj);

Mongo非常聪明,可以使用_id键识别对象,这使得它将这些保存视为对现有对象的更新。如果没有它,您将创建新的对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27419661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档