ホームページ > バックエンド開発 > Golang > mgo を使用して Go で非構造化 MongoDB コレクションをクエリするにはどうすればよいですか?

mgo を使用して Go で非構造化 MongoDB コレクションをクエリするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-26 08:44:14
オリジナル
571 人が閲覧しました

How to Query Unstructured MongoDB Collections in Go with mgo?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート