ホームページ >バックエンド開発 >Golang >オブジェクト ID の配列を使用して Golang から MongoDB にクエリを実行するにはどうすればよいですか?

オブジェクト ID の配列を使用して Golang から MongoDB にクエリを実行するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-31 02:06:29619ブラウズ

How to Query MongoDB from Golang using an Array of Object IDs?

オブジェクト ID の配列を使用して Golang から MongoDB にクエリを実行する

MongoDB では、それぞれに独自の一意の _id を持つドキュメントの配列を保存できます。 。これにより、複数のドキュメントを親ドキュメントに関連付けることができます。 Golang の mgo および bson パッケージを使用してこれらのドキュメントをクエリする場合、_id 配列を適切な型に変換することが重要です。

解決策

配列内の _id 値がは単なる 16 進文字列であるため、指定されたコードは正しいです:

<code class="go">query := bson.M{"_id": bson.M{"$in": ids}}
c.Find(query).All()</code>

ただし、_id 値がオブジェクト識別子 (ObjectId) の場合は、それらを適切な型に変換する必要があります:

<code class="go">oids := make([]bson.ObjectId, len(ids))
for i := range ids {
  oids[i] = bson.ObjectIdHex(ids[i])
}
query := bson.M{"_id": bson.M{"$in": oids}}</code>

$in 演算子には 16 進文字列ではなく ObjectId 値の配列が必要なため、この変換が必要です。 16 進文字列を ObjectId タイプに変換すると、指定された _id 値に関連付けられたドキュメントを正しくクエリできます。

以上がオブジェクト ID の配列を使用して Golang から MongoDB にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。