我想知道是否有任何方法可以让我在将 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 中是否有针对此问题的内置解决方案?