复合文字使用无键字段

问题描述 投票:12回答:1

我正在使用用于golang的新的官方mongodb驱动程序。我创建了一个复杂的查询,将数据插入mongo db,然后根据元素值对其进行排序。我正在使用一个过滤器,其中使用:-

创建了bson类型
filter := bson.D{{"autorefid", "100"}}

但是它显示警告语:

primitive.E复合文字使用无键字段

警告在我的代码中造成混乱。

mongodb go
1个回答
25
投票

可以通过将检查标记设置为false来停止警告。

$ go doc cmd/vet

默认情况下,将执行所有检查。如果将任何标志显式设置为true,则仅运行那些测试。相反,如果有任何标志显式设置为false,仅禁用那些测试。从而-printf = true运行printf检查,-printf = false运行除printf检查之外的所有检查。

Unkeyed composite literals

Flag: -composites

Composite struct literals that do not use the field-keyed syntax.

但是警告是由于在primitive.E结构中设置值时未提供键名称。

primitive.E结构的设置键将删除警告消息。例如

filter := bson.D{primitive.E{Key: "autorefid", Value: "100"}}

包原语包含与BSON的Go原语相似的类型类型不能具有直接的Go基本表示形式。

type E struct {
    Key   string
    Value interface{}
}

E代表D的BSON元素。通常在D内使用。

有关更多信息,请查看primitive.E

© www.soinside.com 2019 - 2024. All rights reserved.