BSON est simplement un JSON binaire. Les requêtes MongoDB sont des documents BSON construits à l'aide de constructions similaires, en utilisant bson.M
(qui est une map[string]interface{}) pour les objets et des tranches de valeurs pour les tableaux. Il y a aussi un bson.D
type qui peut être utilisé pour construire des objets qui préservent l'ordre de ses champs.
La documentation de l'API pour le paquet bson explique la plupart des choses que vous devez savoir. La chose la plus importante est que les types Go sont mappés à leurs équivalents bson de la manière dont vous les attendez. Les dates Bson correspondent à time.Time.
En utilisant votre exemple :
query:=bson.M{"eventDateTime":bson.M{"$gte": fromDate, "$lt":toDate}}
d'où fromDate
et toDate
sont time.Time
valeurs.
Comme autre exemple, une requête $in peut être écrite comme :
query:=bson.M{"field":bson.M{"$in":[]string{"value1","value2"}}}