问题标签 [mongo-go]

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.

0 投票
1 回答
558 浏览

mongodb - 如何将具有自定义 MarshalBSONValue 的结构的 nil 指针序列化为 BSON?

我的程序中使用的 mongodb 官方 golang 驱动程序。

这个程序会因为错误而恐慌:

0 投票
1 回答
1966 浏览

mongodb - mongo-go-driver 聚合查询总是返回 "Current": null

我想通过使用对字段求和

但它总是回来

有什么解决办法吗?

0 投票
3 回答
4416 浏览

mongodb - 如何在解组 MongoDB 文档时忽略空值?

我想知道是否有任何方法可以让我在将 MongoDB 文档解组为 Go 结构时忽略空类型。

现在我有一些自动生成的 Go 结构,如下所示:

更改此结构中声明的类型不是一种选择,这就是问题所在;在我没有完全控制权的 MongoDB 数据库中,一些文档已经插入了空值,最初我并不期望空值。像这样的东西:

由于在我的结构中声明的字符串类型不是指针,它们无法接收nil值,因此每当我尝试在我的结构中解组此文档时,它都会返回错误。

防止将此类文档插入数据库将是理想的解决方案,但对于我的用例,忽略空值也是可以接受的。因此,在解组文档后,我的 User 实例将如下所示

我试图找到一些注释标志,或者可以传递给方法Find/的选项,FindOne甚至可能是一个查询参数,以防止从数据库返回任何包含空值的字段。直到现在都没有任何成功。

mongo-go-driver 中是否有针对此问题的内置解决方案?

0 投票
1 回答
76 浏览

mongodb - 禁用 Go mongo bson 地图中的某些字段

我正在使用"go.mongodb.org/mongo-driver/bson"
有没有办法能够禁用一个字段,但仍然是一个有效的 bson 地图?

这个片段绝对不能编译Missing key in map literal

0 投票
1 回答
1570 浏览

database - 在 mongo go 驱动程序中使用 DBRef

我想使用DBrefwithgo-mongo-driver但我找不到任何关于它的例子。我怎样才能做到这一点?我之前使用过 Spring Data Mongodb,您可以在类中指定 Dbref,例如:

@DBRef 私人邮箱地址邮箱地址;

有没有人可以举一个很好的例子?提前致谢

0 投票
1 回答
3345 浏览

mongodb - 如何使用 go mongo-driver 在 MongoDB 中将 []byte 存储为二进制文件

我正在使用using go.mongodb.org/mongo-driver/mongo并且正在尝试在 MongoDB 中编写字节切片。但是,驱动程序将其编组为整数数组。

就我而言,我有以下类型:

我试图将ValueMarshaler接口实现为愚蠢的:

但很明显,h[:20]不会为 mongo 返回有效字节。它恐慌并返回以下内容:

0 投票
2 回答
2614 浏览

mongodb - 与 MongoDB go 客户端一起使用时 bson struct 标记的必要性

我正在观看有关如何创建使用 MongoDB 进行持久性的 Go RESTful API 的教程(更准确地说是这个)。

讲师在他的模型(结构)中同时使用 jsonbson标签,例如

但是官方的 go 驱动程序示例并没有这样做。

事实上,根本没有使用结构标签。

bson使用标签的目的/用处是什么?

我想到的一件事是有人想要创建自定义 mongo_id字段,在这种情况下bson,应该声明与该结构的字段的显式映射。

bson标签还有其他附加价值吗?

0 投票
1 回答
913 浏览

mongodb - mongodb mongo-go-driver Decimal128 中的高低值是多少以及如何使用它们来创建新的小数

MongoDB 的 GO 驱动程序有一个Decimal128类型,它是一个如下所示的结构:

根据文档, h 和 l 是 uint64 的高值和低值。这两个值代表什么?假设我想创建一个 Decimal128 ,当转换为字符串时将等于"100.50". 使用下面的函数,h 和 l 的值是多少。

我总是被迫解析这样的字符串d, _ := primitive.ParseDecimal128("100.50")而不是

创建一个新的 Decimal128 只是因为我不明白如何使用高值和低值来导出十进制值。

0 投票
1 回答
1382 浏览

mongodb - 如何使用 mongo-go-driver 编组/解组具有多态结构的 bson 数组

我正在努力用 mongo-go-driver 对具有多态结构的 bson 数组进行编组/解组。我计划将一个结构鉴别器保存到编组的数据中,并编写一个自定义的 UnmarshalBSONValue 函数来根据结构鉴别器对其进行解码。但我不知道如何正确地做到这一点。

使用上面的代码,我试图将INodeList数据解码为[]bson.Raw,然后bson.Raw根据nodeclass. 但它报告错误:

cannot decode document into []bson.Raw

在线

err := bson.Unmarshal(data, &arr).

那么,如何正确地做到这一点呢?

0 投票
1 回答
94 浏览

mongodb - 从处理程序插入 MongoDB 文档

我有代码,当我尝试这个调用时 console write undefined: insertContractData。我尝试更改此代码,但在Invalid memory address or nil pointer dereference 我无法理解如何正确执行时出错。

我认为我写的结构不正确,我仍然无法编译这两天,请我不这样做。

我使用官方的 Mongo-go 驱动程序连接到语言的骄傲,所以我无法更准确地连接到 Plaza 本身作为官方文件。如果这一切都是我的,它原来是连接的。并且单独地,连接每个集合,它不起作用这个代码通常应该以某种方式开始工作,但是工作没有发生,或者更确切地说它工作不正确,对结构发誓,所以它对一个方法发誓未命名这里是如何解决它,我不知道,但我希望有一些解决这个问题的方法在这里感谢您的帮助。