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