PHP中是否有一种方法可以在已经存在的文档中写入对象,并且只覆盖或添加对象中包含的值。
我不知道物体的结构。
以下是一个示例:
现有文件:
{
"package": {
"parameter": "value",
"one": "two"
}
}php对象或数组:
$obj[package][parameter] = "value2"
$obj[package][new] = "test"`结果可能是
{
"package": {
"parameter": "value2",
"one": "two",
"new": "test"
}
}我需要像array_merge()这样的东西
我尝试过$merge攻击器,但它似乎不起作用。
未知修饰语:$merge。期望指定为数组的有效更新修饰符或流水线式更新。
发布于 2022-03-24 20:55:20
$merge用于向集合插入/更新文档,就像SQL中的UPSERT命令一样。看看$mergeObjects。将其与$replaceWith (或只是别名的$replaceRoot )结合使用。
可能就像
{ $replaceWith: { $mergeObjects: [ "$$ROOT", {"new" : "test"} ] } }$$ROOT是现有的对象。如果现有对象有任何与新对象同名的字段,则将用新字段值覆盖它。如果您喜欢现有的字段,那么在数组中翻转参数。
您提供的示例数据是无效的JSON,因此我无法提供完整的解决方案。
https://stackoverflow.com/questions/71608939
复制相似问题