オブジェクト ID の配列を使用して Go から MongoDB にクエリを実行する
MongoDB では、ドキュメントの ID を文字列またはオブジェクトの配列に格納できます。 ID。 mgo パッケージを使用して、配列に格納されているオブジェクト ID に基づいて複数のドキュメントを取得する場合は、正しいアプローチに従っていることを確認することが重要です。
間違ったクエリ
提供されたクエリ:
query := bson.M{"_id": bson.M{"$in": ids}}
は、ids が文字列の配列であるため、オブジェクト ID としては正しくありません。 MongoDB は $in 演算子のオブジェクト ID を必要とします。
オブジェクト ID の正しいクエリ
配列に格納されているオブジェクト ID をクエリするには、文字列を前にオブジェクト ID に変換します。クエリの構築:
oids := make([]bson.ObjectId, len(ids)) for i := range ids { oids[i] = bson.ObjectIdHex(ids[i]) } query := bson.M{"_id": bson.M{"$in": oids}}
for ループは文字列の配列を反復処理し、bson.ObjectIdHex(string) を使用して各文字列をオブジェクト ID に変換し、それを oids スライスに保存します。結果の oids スライスにはオブジェクト ID が含まれます。次に、$in 演算子の oids スライスを使用してクエリが構築されます。
オブジェクト ID に正しいクエリを使用すると、Go と mgo パッケージを使用して MongoDB から ID が一致する複数のドキュメントを効率的に取得できます。
>以上がオブジェクト ID の配列を使用して Go から MongoDB にクエリを実行する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。