mgo-後続テスト(フィールドを指定し、idを取得)
7317 ワード
mgoのDBRefをテストした後、指定したフィールドの表示をテストしようとしたところ、フレームワークコードが採用されていたことがわかり、多くの問題が隠されていました.
1.指定されたフィールドを表示します.
以前はmgoを使用するときはすべてのフィールドをクエリーしていましたが、mongo端末環境では次のように書かれています.
logコンテンツのみの表示を保証するためにid表示を外す必要がある場合は、
golangのmgoの書き方はmgoのselect()メソッドで実現する必要があります.コードは以下の通りです.
結果は次のとおりです.
id表示を削除するには:
結果
うん...1つのフィールドだけを表示したい場合は、ループ出力を行います.
参照:mgoはどのようにしてfieldの一部を返しますか?
2.問合せIDの値:
mongo端末では簡単です.
mgoで調べられないの?問題はstructで
IDを再照会しても問題ありません:)、調べる時間はlogidではなく「_id」を調べることに注意してください.
結果:
参照:mgoはどのように指定された_に基づいてid検索結果は?
1.指定されたフィールドを表示します.
以前はmgoを使用するときはすべてのフィールドをクエリーしていましたが、mongo端末環境では次のように書かれています.
> db.logs.find({},{"log":1})
{ "_id" : "3a06384a40a8e587806f194c6c80253e", "log" : " " }
{ "_id" : "36bb718040a4362b8035ebd822125dba", "log" : " " }
logコンテンツのみの表示を保証するためにid表示を外す必要がある場合は、
> db.logs.find({},{"_id":0,"log":1})
{ "log" : " " }
{ "log" : " " }
golangのmgoの書き方はmgoのselect()メソッドで実現する必要があります.コードは以下の通りです.
err = d.Find(bson.M{}).Select(bson.M{"log": 1}).All(&result1)
結果は次のとおりです.
[ `run` | done: 342.828631ms ]
[{b5e57fed409eab8e804e17088b1fdaae { <nil> } 0001-01-01 00:00:00 +0000 UTC}
{261e7fe9402c6842807092e7f0df61ce { <nil> } 0001-01-01 00:00:00 +0000 UTC}
id表示を削除するには:
err = d.Find(bson.M{}).Select(bson.M{"log": 1, "_id": 0}).All(&result1)
結果
{ { <nil> } 0001-01-01 00:00:00 +0000 UTC}
{ { <nil> } 0001-01-01 00:00:00 +0000 UTC}
うん...1つのフィールドだけを表示したい場合は、ループ出力を行います.
for i := 0; i < len(result1); i++ {
fmt.Println(result1[i].Log)
}
参照:mgoはどのようにしてfieldの一部を返しますか?
2.問合せIDの値:
mongo端末では簡単です.
> db.logs.find({},{"_id":1})
{ "_id" : "3a06384a40a8e587806f194c6c80253e" }
{ "_id" : "36bb718040a4362b8035ebd822125dba" }
mgoで調べられないの?問題はstructで
//
type Log struct {
LogId string
Log string
LogUser mgo.DBRef
Inserted time.Time
}
//
type Log struct {
LogId string `bson:"_id"`
Log string
LogUser mgo.DBRef
Inserted time.Time
}
IDを再照会しても問題ありません:)、調べる時間はlogidではなく「_id」を調べることに注意してください.
err = d.Find(bson.M{}).Select(bson.M{"_id": 1}).All(&result1)
結果:
{32197b67400e229f8017fd8258c2f700 { <nil> } 0001-01-01 00:00:00 +0000 UTC}
{e7dda7b34052584280ef55f49b16eb2c { <nil> } 0001-01-01 00:00:00 +0000 UTC}
参照:mgoはどのように指定された_に基づいてid検索結果は?