MongoDBのmgoドライバを使ってRESTful APIを開発しています。mgo:タイプ番号(int、float64)のフィールドが見つかりません。
問題は、型intのフィールドでドキュメントを取得しようとしていて、結果が返されないということです。これは、すべての文書を返しますが、モンゴシェルで同じことをやってする文書を返しません
conn.Session.
DB("face").
C("papers").
Find(bson.M{"rating": 2.9}).
All(&papers) // papers is an instance of a slice struct.
:で
{
"_id" : ObjectId("5797833e9de6f8c5615a20f9"),
"id" : "28743915-9be0-427d-980d-5009bfe1b13a",
"name" : "Hunter",
"rating" : 2.9,
"downloads" : 5040
}
そして、この文書を取得しようとしている:私はこの文書を持っている。例えば
たとえば、
db.papers.find({"rating": 2.9})
これをmongoシェルで実行すると、 NY文書:
db.papers.find({"rating": "2.9"})
だから私は問題はbson.Mが連載されているときにそのbson.Mがマップ[文字列]インターフェース{}であるので、それは、文字列に値を変換するかもしれないことかもしれないと思います
これは紙の構造体が
type Paper struct {
ID string `json:"id,omitempty" bson:"id"`
Name string `json:"name,omitempty" bson:"name"`
Rating float64 `json:"rating" bson:"rating"`
Downloads int `json:"downloads" bson:"downloads"`
}
あなたは私たちに 'papers'がスライスでの構造体の宣言を示してもらえますか? –
はい私はそれを追加することができますが、代わりに名前で検索しようとすると問題がどこにあるかは考えません。bson.M {"name": "Hunter"}。 – user3589262