mgo を使用した非構造化 MongoDB コレクションのクエリ
mgo パッケージを使用して、Golang で非構造化 MongoDB コレクションのクエリとデータの読み取りを行うと、課題が生じる可能性があります。事前定義されたデータを処理するために構造体を定義できますが、ドキュメントにさまざまなキーのセットが含まれるシナリオが発生する可能性があります。この記事では、この問題に対処するための代替方法を紹介し、非構造化データを柔軟に処理できるようにします。
マップの使用
マップを利用して、ドキュメントのデータをキーとして保存できます。 -値のペア。これにより、さまざまなキーのセットを持つドキュメントを柔軟に処理できるようになります。例:
var m bson.M err := collection.Find(nil).One(&m) check(err) for key, value := range m { fmt.Println(key, value) }
ドキュメント スライスの使用
bson.D 型を使用すると、キーの順序を維持しながら、ドキュメントを bson.Elem オブジェクトのスライスとして保存できます。この方法により効率が向上し、キーの順序が維持されます。
var d bson.D err := collection.Find(nil).One(&d) check(err) for i, elem := range d { fmt.Println(elem.Name, elem.Value) }
インライン マップ フィールドの使用
インライン bson フラグをマップ フィールドで使用すると、マップ フィールドを使用する利点を組み合わせることができます。構造体と未知のフィールドの処理。これにより、予期しないキーに対する柔軟性を提供しながら、既知のフィールドの構造化された処理が可能になります。
type Person struct { ID bson.ObjectId `bson:"_id,omitempty"` Name string Phone string Extra bson.M `bson:",inline"` }
以上がGolang の mgo を使用して MongoDB コレクション内の非構造化データをクエリおよび処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。