Mongoデータベース、Select *ここでid = 3およびid = 4
-
25-10-2019 - |
質問
私はmongodbを持っているので、2つ以上のレコードを取得して、これをマップに入れたいと思います。以下のコードは、私が1つしかない場合に正常に動作します query.put(ïd", "7");
ただし、以下のコードのように2つ以上を入れても機能しません。
Map<Object,Object> map= new HashMap<Object,Object>();
DBCollection collection = database.getCollection("Members");
BasicDBObject query = new BasicDBObject();
query.put("id", "7");
query.put("id", "3");
DBCursor cursor = collection.find(query);
DBObject one;
while(cursor.hasNext()) {
one = cursor.next();
map.put(one.get("id"),one.get("name"));
}
マップ内で2つ以上のレコードを取得するにはどうすればよいですか? SQLの場合、同等です SELCT * FROM Member WHERE id = 7 AND id = 3
さらに完璧なことは、私がクエリとしてリストを与えることができれば、これが可能かどうかはわかりません。
解決
私はあなたが欲しいと思います $in
オペレーター, 、 何かのようなもの:
Map<Object,Object> map= new HashMap<Object,Object>();
DBCollection collection = database.getCollection("Members");
BasicDBObject query = new BasicDBObject();
query.put("id", new BasicDBObject("$in", new Integer[] {3, 7}));
DBCursor cursor = collection.find(query);
DBObject one;
while(cursor.hasNext()) {
one = cursor.next();
map.put(one.get("id"),one.get("name"));
}
...値があると仮定します Integer
s。配列の両方と思います BasicDBList
インスタンスがサポートされています。
所属していません StackOverflow