gpt4 book ai didi

mongodb - MongoDB可以在不影响现有文档(例如Elasticsearch)的情况下进行更新

转载 作者:行者123 更新时间:2023-12-02 23:35:12 24 4
gpt4 key购买 nike

在mongodb update中,upsert只是一个标志,表示如果不存在则创建该文档,如果存在则进行更新。

在elasticsearch中,可以分别指定具有更新字段的doc json和具有仅添加到新文档中的字段的upsert json。因此,upsert中指定的字段不会影响现有文档。

例:

curl -XPOST 'localhost:9200/test/type1/1/_update' -d '{
"doc" : {
"name" : "new_name"
},
"upsert" : {
"is_new" : true
}
}

因此,如果文档1存在,其名称将更改为 "new_name",但不添加 "is_new"字段。如果不存在,它将具有 "is_new" = true

在mongodb中这样的事情可行吗?

谢谢

最佳答案

是。 $setOnInsert 修饰符:

db.collection.update({ "_id": 1 },{ "$setOnInsert": { "field": 2 } },{ "upsert" true })

这意味着在存在新文档时,仅应用中的 $setOnInsert 中的内容。其他update modifiers在插入和文档匹配上均“同时”应用。

关于mongodb - MongoDB可以在不影响现有文档(例如Elasticsearch)的情况下进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871611/

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