问题标签 [mongo-go-driver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 在 MongoDB 的 Go 客户端中,如何注册 Hook Decoder 来处理接口的解组 BSON?
我正在尝试使用 Go 来查看是否可以将当前项目转移到它。我当前的非 Go 代码库中有几个域模型,它们利用基于类型字段的多态性。
关于该主题的文档或文献并不多,而我一天左右的学习时间使遍历和研究其来源有点……好吧,我来了。
反正...
以下是基本接口和实现结构的示例:
它将有许多结构实现,因此我需要能够基于字段type
中的字段执行切换,bson.Raw
然后才能确定struct
要使用哪个。
据我所知,RegisterHookDecoder
[ docs ] [ source ] 正是我所需要的。但是,我无法让它真正启动,我不知道为什么。
解码器:
package main
我真的不确定我在这里缺少什么。我在明显的事情上犯错了吗?
LookupDecoder(filterType)
ValueDecoderFunc
实际上根据下面的代码找到了一个。我只是不确定这是否是一个包罗万象的东西。我对 Go 的了解还远远不够,无法断言更多。
无论如何,我感谢您阅读本文。感谢您的时间。
**编辑:更新以反映@icza 建议的更改
mongodb - mongo-go-driver get inserted document
Collection.InsertOne()
returns a *InsertOneResult
, which only contains the ID of the inserted document. To get the inserted document, you have to perform another Collection.Find()
query. Is there a way to do this in a single step?
A current work around is to use Collection.FindOneAndUpdate()
with Upsert
set to true, as this returns a *SingleResult
that can then be decoded into a struct, and sent back to the client.
json - 从golang中的mongodb查询结果中删除一个字段
mongodb - 如何用 Go 驱动程序替换 MongoDB 中的文档?
我正在尝试使用mongodb/mongo-go-driver
. 从其文档中,一个文档可以替换为:
但是,如果我的字段超过 20 个怎么办。我想知道是否可以在不重新编写所有字段的情况下进行更新,我尝试了这样的方法:
但它会在过滤和替换时引发错误。如何正确替换整个文档?
mongodb - 通过 mongo-go-driver 使用 mongodb 本机函数
就像标题一样,如何使用 mongo-go-driver 来执行 mongodb 的原生函数,比如ISODate().getTime()
?即使在 mongo 的官方文档中,我也找不到一个好的文档来执行此操作。
例如,查询
大致翻译为
但这样,最后看到的值不会是 mongo 中的 UNIX 时间戳,而是文字字符串“ISODate().getTime()”
注意:对于dummy的情况,最好不用在应用层创建时间戳,所以需要使用DB的功能
mongodb - 如何使用 mongo-go-driver 在 Mongodb 文档中设置 TTL 索引?
如何使用“mongo-go-driver”在文档中设置 TTL 索引?
假设这是我的文档模型:
在这里我插入新文档:
现在我希望这个会话将在几次后被删除。
我在文档中通过设置 TTL 使集合中的数据过期,但无法弄清楚如何使用 mongo-go-driver 在 go 中做同样的事情。
mongodb - 实现mongo go驱动接口的正确方法
我正在尝试为 mongo go 驱动程序编写接口来为我的 post_repo.go 编写单元测试,但出现此错误:
我的接口文件,取自这篇文章https://medium.com/better-programming/unit-testing-code-using-the-mongo-go-driver-in-golang-7166d1aa72c0:
我的 post_repo.go 文件:
我的 posts_repo_test.go 测试工作正常,但前提是我在函数 newPosts.NewPostsDatabase() 中通过 newPosts.DatabaseHelper。我想我需要通过 *mongo.Database 才能使我的程序正常工作。
也许我误解了单元测试的工作原理。任何帮助
mongodb - 更新 mongo 文档
我有一个包含一组客户端的 mongo 文档。我希望能够通过用户 ID 更新客户名称。到目前为止,我有下面的代码。当我运行它时,它会出现多个写入错误。我的数据库中只有一个具有该 _id 的文档。如何修复我的代码?
代码:
mongodb - 每个数据库操作需要 30 秒
即使是最简单的代码:
运行需要 30 秒。
为什么它需要那么长时间才能运行?任何帮助表示赞赏!