5 回答

TA貢獻1775條經驗 獲得超11個贊
可以通過將檢查標志設置為 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"}}
包原語包含類似于 Go 原語的類型,因為 BSON 類型不能有直接的 Go 原語表示。
type E struct {
? ? Key? ?string
? ? Value interface{}
}
E 表示 D 的 BSON 元素。它通常在 D 內部使用。

TA貢獻1825條經驗 獲得超6個贊
您可以簡單地更改:
filter := bson.D{{"autorefid", "100"}}
到:
filter := bson.D{{Key: "autorefid", Value: "100"}}
//跳過 primitive.E 正如 Chris W 所說

TA貢獻1818條經驗 獲得超3個贊
你可以改變:
filter := bson.D{{"autorefid", "100"}}
到:
filter := bson.D{primitive.E{Key: "autorefid", Value: "100"}}

TA貢獻1752條經驗 獲得超4個贊
實際上,如果不需要 BSON 文檔的有序表示,您可以通過簡單地更改將 BSON 文檔更改為無序表示
filter?:=?bson.D{{"autorefid",?"100"}}
到
filter?:=?bson.M{"autorefid":?"100"}
MongoDB 服務器足夠聰明,可以找到匹配的索引,而不管使用的順序如何。bson.D
bson.M
- 5 回答
- 0 關注
- 225 瀏覽
添加回答
舉報