Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Mongo数据库,选择*其中id=3和id=4_Java_Mongodb_Mongo Java - Fatal编程技术网

Java Mongo数据库,选择*其中id=3和id=4

Java Mongo数据库,选择*其中id=3和id=4,java,mongodb,mongo-java,Java,Mongodb,Mongo Java,我有一个MongoDB,我想得到两个或更多的记录,并把它放在地图上。 如果我只有一个query.put(ïd”,“7”);,那么下面的代码可以正常工作,但是如果我像下面的代码那样放入两个或更多的查询,那么它就不工作了 Map<Object,Object> map= new HashMap<Object,Object>(); DBCollection collection = database.getCollection("Members"); Ba

我有一个MongoDB,我想得到两个或更多的记录,并把它放在地图上。 如果我只有一个
query.put(ïd”,“7”);
,那么下面的代码可以正常工作,但是如果我像下面的代码那样放入两个或更多的查询,那么它就不工作了

    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"));
    }
Map Map=newhashmap();
DBCollection=database.getCollection(“成员”);
BasicDBObject查询=新建BasicDBObject();
查询.put(“id”,“7”);
查询.投入(“id”,“3”);
DBCursor=collection.find(查询);
对象一;
while(cursor.hasNext()){
one=游标。next();
map.put(one.get(“id”)、one.get(“name”);
}
我怎样才能在地图上找到两条或更多的记录? 对于SQL,等价物是
SELCT*FROM成员,其中id=7和id=3

更完美的是,如果我可以给出一个列表作为查询,但不确定这是否可行。

我想你想要的是,类似于:

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"));
}
Map Map=newhashmap();
DBCollection=database.getCollection(“成员”);
BasicDBObject查询=新建BasicDBObject();
put(“id”,新的BasicDBObject(“$in”,新的整数[]{3,7}));
DBCursor=collection.find(查询);
对象一;
while(cursor.hasNext()){
one=游标。next();
map.put(one.get(“id”)、one.get(“name”);
}
…假设值为
Integer
s。我认为数组和
BasicDBList
实例都受支持。

我认为您需要,类似于:

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"));
}
Map Map=newhashmap();
DBCollection=database.getCollection(“成员”);
BasicDBObject查询=新建BasicDBObject();
put(“id”,新的BasicDBObject(“$in”,新的整数[]{3,7}));
DBCursor=collection.find(查询);
对象一;
while(cursor.hasNext()){
one=游标。next();
map.put(one.get(“id”)、one.get(“name”);
}

…假设值是
Integer
s。我认为数组和
BasicDBList
实例都受支持。

id为7和id为3的帖子?你的意思是帖子应该有id为3或id为7,而不是两者都有。从你的上一句话判断,我认为你想发布的SQL是
SELECT*from Member WHERE id IN(7,3)
。请编辑问题以使用正确的等效SQL,即实际返回一些行的SQL。在该
查询中。put
语句中,您复制/粘贴了吗?这应该是
id
中的标准
i
?并且
id
不应该同时具有打开和关闭“?请复制/粘贴这些内容,而不是键入“类似”代码中的内容。在结果中,我需要两条记录,其中id=3,其中id=4@Marc:术语为“或”、“非”和。“您要检索
id
为3或7的记录。考虑如果你想用“代码> ID <代码> 3和<代码>名称<代码> Foo检索记录,你将意味着什么。你是说只有那些记录都是真的,对吧?因此,没有任何记录可能与“where
id
是3和7”匹配(除非
id
是某种多值字段或其他内容)。一篇id为7和id为3的帖子?你的意思是一篇文章应该有id 3或id 7,而不是两者都有。从你最后一句话判断,我认为你想发布的SQL是
SELECT*from Member WHERE id IN(7,3)
。请编辑问题以使用正确的等效SQL,即实际返回一些行的SQL。在该
查询.put
语句中,是否复制/粘贴了该语句?这应该是
id
中的标准
i
id
不应该同时有开头和结尾吗?请复制/粘贴这些内容,而不是键入“类似”代码中的内容。在结果中,我需要两条记录,其中id=3,其中id=4@Marc:术语为“或”、“非”和。“您想要检索
id
为3或7的记录。考虑如果你想用“代码> ID <代码> 3和<代码>名称<代码> Foo检索记录,你将意味着什么。你是说只有那些记录都是真的,对吧?因此,没有任何记录可能匹配“其中
id
是3和7”(除非
id
是某种多值字段或其他内容)。