0

我有一个 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"));
    }

我将如何获得地图中的两条或更多记录?对于 SQL,等价的将是SELCT * FROM Member WHERE id = 7 AND id = 3

如果我可以提供一个列表作为查询,则更完美的是,不确定这是否可能。

4

1 回答 1

5

我认为您想要$inoperator,例如:

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"));
}

...假设值为Integers。我认为支持数组和BasicDBList实例。

于 2011-07-24T11:47:53.803 回答