【发布时间】:2014-12-11 09:42:35
【问题描述】:
我在 MongoDB 中有 json 对象。我想为这个对象添加一个值,例如在位置 -> 机器 -> 传感器中。我知道机器、位置和传感器的 _id。最有效的方法是什么?
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 (
)
)
)
)
)
)
)
【问题讨论】:
-
您能否发布您的架构,以提高可读性。
-
你应该使用 MySQL。 ;)
-
要匹配嵌套深度为 2 的数组,每个级别都有一个
_id,需要 SERVER-831。通常,解决此问题的方法(以及最终通常会产生更好结果的方法)是重新设计模式,以便没有嵌套数组。但是,如果不深入了解您的用例,很难说如何最好地做到这一点。
标签: php mongodb mongodb-php