4

次のようなGOLANG構造体があります。

type OrgWhoAmI struct {
FriendlyName            string        `json:"friendlyName"`
RedemptionCode          string        `json:"redemptionCode"`
StartUrls               []StartUrl    `json:"startUrls"`
Status                  string        `json:"status"`
Children                []OrgChildren `json:"childrenReemptionCodes"`
}

type StartUrl struct {
DisplayName string `json:"displayName"`
URL         string `json:"url"`
}

type OrgChildren struct {
FriendlyName   string `json:"childFriendlyName"`
RedemptionCode string `json:"childRedemptionCode"`
}

レコードを作成し、MongoDB コレクションに正常に挿入しました (CLI mongo プログラムで Mongo にクエリを実行することで結果を確認できるため) - しかし、次のように MGO を使用してクエリを実行しても、何も得られません。

func main() {
    session, sessionErr := mgo.Dial("localhost")
defer session.Close()

    // Query All
    collection := session.DB("OrgData").C("orgWhoAmI")
var results []OrgWhoAmI
err = collection.Find(bson.M{}).All(&results)
if err != nil {
    panic(err)
}
for _, res := range results {
    fmt.Printf("Result: %s|%s\n", res.FriendlyName, res.RedemptionCode)
}
}

印刷された結果は次のとおりです。

結果: | 結果: | 結果: | 結果: |

レコードの数を尋ねると、正しい数が得られますが、すべてのフィールドのすべての値が空白です。ここで何が欠けているのかわかりません。

4

1 に答える 1

7

go で作成していない場合は、キー名が適切にシリアル化されていない可能性があります。bson のデフォルトはキーを小文字にすることなので、他の何かが必要な場合はそれを指定する必要があります。OrgWhoAmIまた、 forにタイプミスがあることに注意してくださいjson:"childrenReemptionCodes"(Redemption である必要があると思います)。異なるものにしたい場合は、bson と json の両方を別々に指定できます。

type OrgWhoAmI struct {
   FriendlyName            string        `bson:"friendlyName" json:"friendlyName"`
   RedemptionCode          string        `bson:"redemptionCode" json:"redemptionCode"`
   StartUrls               []StartUrl    `bson:"startUrls" json:"startUrls"`
   Status                  string        `bson:"status" json:"status"`
   Children                []OrgChildren `bson:"childrenRedemptionCodes" json:"childrenRedemptionCodes"`
}

type StartUrl struct {
   DisplayName string `bson:"displayName" json:"displayName"`
   URL         string `bson:"url" json:"url"`
}

type OrgChildren struct {
   FriendlyName   string `bson:"childFriendlyName" json:"childFriendlyName"`
   RedemptionCode string `bson:"childRedemptionCode" json:"childRedemptionCode"`
}
于 2014-01-02T19:15:13.063 に答える