2017-02-22 15 views
1

私はイオンアプリを作成しましたが、現在Goを経由してMongoDBから配列を取得しようとしています。これは、MongoDBのデータがどのように見えるかです。空の配列が返されています

{ 
"_id": { 
    "$oid": "58a86fc7ad0457629d64f569" 
}, 
"name": "ewds", 
"username": "[email protected]", 
"password": "vdseaff", 
"email": "fawfef", 
"usertype": "Coaches", 
"Requests": [ 
    "[email protected]" 
] 
} 

現在、リクエストフィールドを取得しようとしていますが、次のコードを使用してドキュメント全体を受信しようとしました。

//this is the struct being used. 
type (
User struct { 
    Name  string 
    Username string 
    Password string 
    Email string 
    UserType string 
    Requests []string 
} 
) 
results := User{} 
err = u.Find(bson.M{"username": Cname}).One(&results) 

これは空の配列で次のものだけを返します。あなたのデータで

{ewds [email protected] vdseaff fawfef Coaches []} 
+1

「結果」の定義を表示する質問を更新してください。 –

+0

エラーがありますか? – JimB

+0

エラーはありません。空の配列ではなく配列を返すことを意図しています – Racket

答えて

1

Requestsフィールドは、資本Rを持っています。あなたのstruct型にMongoのドキュメントを変換しbsonライブラリが、これは

https://godoc.org/gopkg.in/mgo.v2/bson#Unmarshal

を言うために小文字のフィールド名は、エクスポートされた各フィールドのキーとして使用されていますが、この動作は、それぞれを使用して変更することができますフィールドタグ。

だからあなたのオプションは、あなたのRequestsフィールドにタグを追加または小文字requestsを使用するようにデータを変更するかのいずれかです。タグオプションを選択した場合は、

Requests []string `bson:"Requests"` 
+0

ありがとうございました。 – Racket

関連する問題