gpt4 book ai didi

json - 更新 mongodb 中的文档

转载 作者:可可西里 更新时间:2023-11-01 09:35:00 28 4
gpt4 key购买 nike

我目前在 mongodb 中有以下格式的文档:

{ 
"title": "name of the document",
"tags" : ["tag1", "tag2", "tag3"]
}

我希望能够搜索所有在其标题字段中包含“search_term”的文档,然后将“search_term”附加到其标签字段中。有没有一种简单/干净的方法可以做到这一点而无需重新摄取我的所有文档,或者我是否必须编写一个脚本来执行此操作,然后再将它们重新插入到 mongodb 中?

我确实阅读了 db.collection.update() 的 mongodb 文档,其中包含如下示例:

db.people.update(
{ name: "Andy" },
{
name: "Andy",
rating: 1,
score: 1
},
{ upsert: true }
)

但这对我没有帮助,因为我不想完全替换我的“标签”字段而是附加到它。

最佳答案

db.people.update(
{ "title": "search_term" },
{ "$push": { "tags": "search_term" } },
{ "multi": true }
);

一般来说,我会在脚本中对所有数据集等进行迁移/更改,然后从管理路径运行它。

解释:

  • 第一个 JSON:搜索过滤器
  • 第二个 JSON:推送到数组
  • multi: true 如果你想更新多个文档

编辑:自版本 3.2 以来,有一个函数 db.collection.updateMany(filter, update, options) 可用于更新多个文档。

https://docs.mongodb.com/manual/reference/method/db.collection.updateMany/

db.people.updateMany(
{ "title": "search_term" },
{ "$push": { "tags": "search_term" } }
);

* 未测试

关于json - 更新 mongodb 中的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37709549/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com