首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB简单地合并了两个未知文档

问MongoDB简单地合并了两个未知文档
EN

Stack Overflow用户
提问于 2022-03-24 20:21:16
回答 1查看 41关注 0票数 0

PHP中是否有一种方法可以在已经存在的文档中写入对象,并且只覆盖或添加对象中包含的值。

我不知道物体的结构。

以下是一个示例:

现有文件:

代码语言:javascript
复制
{
  "package": {
    "parameter": "value",
    "one": "two"
  }
}

php对象或数组:

代码语言:javascript
复制
$obj[package][parameter] = "value2" 
$obj[package][new] = "test"`

结果可能是

代码语言:javascript
复制
{
  "package": {
    "parameter": "value2",
    "one": "two",
    "new": "test"
  }
}

我需要像array_merge()这样的东西

我尝试过$merge攻击器,但它似乎不起作用。

未知修饰语:$merge。期望指定为数组的有效更新修饰符或流水线式更新。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-24 20:55:20

$merge用于向集合插入/更新文档,就像SQL中的UPSERT命令一样。看看$mergeObjects。将其与$replaceWith (或只是别名的$replaceRoot )结合使用。

可能就像

代码语言:javascript
复制
{ $replaceWith: { $mergeObjects: [ "$$ROOT", {"new" : "test"} ] } }

$$ROOT是现有的对象。如果现有对象有任何与新对象同名的字段,则将用新字段值覆盖它。如果您喜欢现有的字段,那么在数组中翻转参数。

您提供的示例数据是无效的JSON,因此我无法提供完整的解决方案。

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

https://stackoverflow.com/questions/71608939

复制
相关文章

相似问题

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