mgo を使用して Go で非構造化 MongoDB コレクションを処理する
mgo を使用して MongoDB 内のコレクションをクエリする場合、データを事前定義することができます。提供されている Person 構造体の例で示されているように、構造体で返されます。ただし、コレクション内のドキュメントにさまざまなキーのセットが含まれるシナリオが存在する可能性があります。
Go / mgo で非構造化コレクションを処理する方法
方法は複数ありますGo / mgo で非構造化コレクションを処理するには:
を使用するmap:
map[string]interface{} である bson.M 型を使用すると、特定の構造体を定義せずにドキュメント データを直接保存できます。
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
ドキュメント スライスの使用:
bson.D は、キーの順序付けを行い、ドキュメントを処理するための効率的なメカニズムを提供します。
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
インライン マップ フィールドの使用:
マップ フィールドで ,inline bson フラグを使用する構造体では、構造体を使用する利便性と未知のフィールドを処理する柔軟性を組み合わせることができます。
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
以上がmgo を使用して Go で非構造化 MongoDB コレクションをクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。