如果过滤器不返回任何内容,如何插入文档,否则用go替换mongodb中找到的文档?

帕特里克·柯林斯:

我没有使用示例中的MGO包,而只是从此处使用活动仓库

我很难阅读文档基本上,我有一个bson.M对象,我想替换当前对象,如果该对象不存在,则将其插入。

目前,我的代码如下:

updateFilter := bson.D{{"from_symbol", fromSymbol}, {"to_symbol", strings.ToUpper(currency["to_symbol"].(string))}}
// The above seems to be correctly finding the documents I want
// currency is my bson.M object

_, err := collection.ReplaceOne(ctx, updateFilter, currency)
// However this line will not additionally insert if the object is not found, it is replacing fine

我确定我可以手动运行另一个查询以查看文档是否存在,但这似乎是不必要的。谢谢!


编辑:

看起来应该有一种处理方法replaceOptions请参阅文档

upsert := options.ReplaceOptions{Upsert: true}
_, err := collection.ReplaceOne(ctx, updateFilter, currency, upset)

但这给了我错误:

cannot use true (type bool) as type *bool in field value
Burak Serdar:

使用SetUpsert功能:

collection.ReplaceOne(ctx,filter,newDoc,options.Replace().SetUpsert(true))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Elasticsearch 过滤器查询不返回任何文档

尝试/捕获,如果过滤器不返回任何内容,则捕获

在PyMongo中,如何找到文档的_id(如果找到),否则插入并获取插入的文档的_id

DATE(列)过滤器不返回任何内容

MongoDB Python MongoEngine - 通过嵌入式文档过滤器属性的过滤器返回文档

MongoDB文档中的过滤器数组

mongodb嵌套文档的过滤器数组

如果在数据库的任何集合中找到特定的归档值,如何在mongodb中复制旧文档并创建新文档

Qlikview文档中没有自动任何过滤器

在MongoDB,过滤器,C#中返回具有所需值的文档

更新批处理文档(如果存在),否则插入MongoDB

vue 2.0中的自定义过滤器不返回任何内容

当 jQuery 过滤器不返回任何内容时显示消息

集合的每个文档中的MongoDB过滤器数组字段

Mongodb 使用过滤器查找文档

MongoDB嵌入式文档的区别和过滤器

来自子文档数组的mongodb过滤器

如何使用 Java 只从匹配特定过滤器的 MongoDB 文档中获取

如何从 C# 计算 mongodb 中带有过滤器的文档

如何在python中找到“过滤器”对象的长度

R子集/过滤器不返回任何行

ldapsearch过滤器memberOf组不返回任何结果

如何仅带回嵌套文档适合过滤器

如何基于过滤器参数定义文档排序

如何查找重复的文档和过滤器元素

如何使用过滤器从ouchdb中删除文档?

如何从Elasticsearch中的过滤器获取所有文档?

如何使用过滤器跟踪已删除的文档?

用过滤器查询子文档数组并用猫鼬返回原始文档