我有一个嵌套很深的 PHP 数组,我将其保存为 Mongo 中的文档,并以这种结构结束:
{
"_id" : "...",
"categ1" : {
"aaa" : 112.6736,
"bbb" : 83.9137,
"ccc" : 80.3322,
.....
},
"categ2" : {
"xxx" : 1,
"yyy" : 22,
"zzz" : 7,
"subcateg" : {
"sub1" : 1,
"sub2" : 22
}
}
}
现在,我有另一个具有类似结构的数组,我想通过修饰符数组的值来增加记录的值:
$modifier=array(
'categ1' => array(
'aaa' => 3,
'bbb' => -1,
'mmm' => 11
),
'categ2' => array(
'yyy' => -2,
'subcateg' => array(
'sub1' => -1
)
)
);
如何通过 $modifier 的值增加文档中的值一次,在单个查询中,并且不加载整个文档 ?
我在网上四处寻找,但找不到任何相关信息。 另外,我是 Mongo 的新手。谢谢
最佳答案
你可以让你的 $modifier
数组看起来像这样:
$modifier = array(
'categ1.aaa' => 3,
'categ1.bbb' => -1,
'categ1.mmm' => 11,
'categ2.yyy' => -2,
'categ2.subcateg.sub1' => -1
)
那么你应该能够简单地使用:
$col->update(
array("_id" => "..."),
array('$inc' => $modifier),
array("upsert" => true)
);
关于php - mongodb:通过数组更新嵌套文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27606507/