我正在使用用于golang的新的官方mongodb驱动程序。我创建了一个复杂的查询,将数据插入mongo db,然后根据元素值对其进行排序。我正在使用一个过滤器,其中使用:-
创建了bson类型filter := bson.D{{"autorefid", "100"}}
但是它显示警告语:
primitive.E复合文字使用无键字段
警告在我的代码中造成混乱。
可以通过将检查标记设置为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