在PHP Mongodb中是否有一种方法可以在现有文档中写入对象,并且只覆盖或添加对象中包含的值。
对象结构我不知道。
这是一个示例:
现有文档:
{
"package": {
"parameter": "value",
"one": "two"
}
}
php对象或数组:
$obj[package][parameter] = "value2"
$obj[package][new] = "test"`
结果可能是
{
"package": {
"parameter": "value2",
"one": "two",
"new": "test"
}
}
我需要类似array_merge((的东西
我尝试了$merge aggerator,但它似乎不起作用。
未知修饰符:$merge。需要指定为数组的有效更新修饰符或管道样式更新
$merge
用于将文档插入/更新到集合,类似于SQL中的UPSERT
命令。看看$mergeObjects。将其与$replaceWith(或只是别名的$replaceRoot
(结合使用
会像一样
{ $replaceWith: { $mergeObjects: [ "$$ROOT", {"new" : "test"} ] } }
$$ROOT
是现有对象。如果现有对象的任何字段与新对象的名称相同,则它将被新的字段值覆盖。如果您喜欢现有字段,请翻转数组中的参数。
您提供的示例数据不是有效的JSON,因此我无法提供完整的解决方案。