BSON é simplesmente JSON binário. As consultas do MongoDB são documentos BSON construídos usando construções semelhantes, usando
bson.M
(que é uma interface map[string]{}) para objetos e fatias de valores para matrizes. Há também um bson.D
tipo que pode ser usado para construir objetos que preservam a ordenação de seus campos. A documentação da API para o pacote bson explica a maioria das coisas que você deve saber. A coisa mais importante é que os tipos Go são mapeados para seus equivalentes bson da maneira que você espera. Bson datas mapeiam para time.Time.
Usando seu exemplo:
query:=bson.M{"eventDateTime":bson.M{"$gte": fromDate, "$lt":toDate}}
onde
fromDate
e toDate
são time.Time
valores. Como outro exemplo, uma consulta $in pode ser escrita como:
query:=bson.M{"field":bson.M{"$in":[]string{"value1","value2"}}}