将 json 补丁应用到 mongodb 文档

Isa*_*hoo 5 mongodb jsonpath flask python-3.x http-patch

我想使用Python Flask框架实现HTTP PATCH。作为输入,我将收到如下 JSON 补丁:

[
  { "op": "replace", "path": "/work/title", "value": "Senior Engineer" }
]
Run Code Online (Sandbox Code Playgroud)

我的数据库是 MongoDB,我想将上述补丁直接应用到 Mongo。例如,下面是 Mongo 中存储的文档:

{  
   "name":"ABC",
   "age":25,
   "work":{  
      "title":"Engineer",
      "company":"XYZ"
   }
}
Run Code Online (Sandbox Code Playgroud)

应用补丁后,它应该是:

{  
   "name":"ABC",
   "age":25,
   "work":{  
      "title":"Senior Engineer",
      "company":"XYZ"
   }
}
Run Code Online (Sandbox Code Playgroud)

您能帮我找到一种实施方法吗?

根据我的研究,我发现了一个Python模块python-json-patch,它有助于将 json 应用到 json 对象的补丁中。因此,我们需要从 MongoDB 获取 json/document 并使用上述模块应用补丁。然后将文档替换回 MongoDB 中。所以,基本上这会以 PUT 而不是 PATCH 的形式结束。

另一种方法是我认为有一个模块来解析 json 补丁并构建 json 并使用$set将更新应用到 MongoDB将更新应用到 MongoDB 。但这种方法很幼稚而且效率不高。

因此,请建议一种使用 json patch 并直接应用于 MongoDB 文档来实现 HTTP PATCH 的好方法。