オブジェクト ID の配列による MongoDB ドキュメントの取得
MongoDB では、オブジェクト ID (_id とも呼ばれる) の配列を保存できます。文書内で。これらのオブジェクト ID に対応するすべてのドキュメントを効率的に取得するには、$in 演算子を使用します。
質問:
16 進数でエンコードされた _id の配列があります:
ids := ["543d171c5b2c12420dd016", "543d171c5b2dd016"]
mgo と bson を使用して対応するドキュメントを取得するにはどうすればよいですか?
答え:
最初のアプローチは次のとおりです:
query := bson.M{"_id": bson.M{"$in": ids}} c.Find(query).All()
は、_id が文字列ではなくオブジェクト ID として保存されるため、不正確です。オブジェクト ID によってドキュメントを取得するには、16 進数でエンコードされた文字列を bson.ObjectId オブジェクトに変換する必要があります:
oids := make([]bson.ObjectId, len(ids)) for i := range ids { oids[i] = bson.ObjectIdHex(ids[i]) } query := bson.M{"_id": bson.M{"$in": oids}} c.Find(query).All()
このコード:
以上がmgo と bson を使用してオブジェクト ID の配列によって MongoDB ドキュメントを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。