小编And*_*rew的帖子

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

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

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

type User struct {
  Name  string `bson:"name"`
  Email string `bson:"email"`
}
Run Code Online (Sandbox Code Playgroud)

更改此结构中声明的类型不是一个选项,问题就在这里;在我无法完全控制的 MongoDB 数据库中,某些文档已插入空值,而最初我并不期待空值。像这样的东西:

{
  "name": "John Doe",
  "email": null
}
Run Code Online (Sandbox Code Playgroud)

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

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

{
  "name": "John Doe",
  "email": null
}
Run Code Online (Sandbox Code Playgroud)

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

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

go mongodb bson mongodb-query mongo-go

7
推荐指数
1
解决办法
3521
查看次数

标签 统计

bson ×1

go ×1

mongo-go ×1

mongodb ×1

mongodb-query ×1