ゲームプレーヤーの詳細を含む、次のようなMongoDBコレクションがあります。
{
...
"fields" : {
"playername" : "Koala",
...
}
...
}
そして、配列内のプレーヤーの ID を取得したいと考えています。したがって、たとえば、私はこれを行います:
// players: ["Koala", "Cactus"]
Criteria base = Criteria.where("fields.playername").in(players);
DBObject match = base.getCriteriaObject();
List<?> userDetailIds = playersCollection.distinct("_id", match);
オブジェクト ( ) のリスト ( com.mongodb.BasicDBList
) があります。しかし今、そのリストを新しいクエリで使用したいと考えています。たとえば、それらのプレーヤーのすべてのバッジを取得します。バッジ コレクション:ObjectId
org.bson.types.ObjectId
$in
{
"badgeName": "MongoDB Killer",
"userDetailID" : "525c4be1975ac2a8f4a64c6f"
...
}
Java の場合:
mongo.find(Query.query(Criteria.where("userDetailID").in(userDetailIds)), Badges.class);
オブジェクトがuserDetailIds
含まれており、フィールドであるため、これは機能しません。BasicDBList をパラメーターとして使用するにはどうすればよいですか? または: s の代わりに IDの配列を取得できますか?ObjectId
userDetailID
String
$in
String
ObjectId
ありがとう!
PD。リストを繰り返し処理してに変換したくありませんList<String>
。