java - Mongo 数据库,选择 * WHERE id = 3 AND id = 4

标签 java mongodb mongo-java

我有一个 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 中获得两条或更多记录? 对于 SQL,等效项为 SELCT * FROM Member WHERE id = 7 AND id = 3

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

最佳答案

我想你想要 $in operator ,类似:

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。我认为数组和 BasicDBList 实例都受支持。

关于java - Mongo 数据库,选择 * WHERE id = 3 AND id = 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6806544/

相关文章:

mongodb 与 $group 和 $lookup 聚合

java - 对数答案不准确

java - Spring Security 在 Spring Boot 中检索用户名时提供 Null 身份验证

java - 从 javax.json.JsonArray 转换为 org.json.JSONArray

java - Eclipse 似乎不识别 java

javascript - 如何减去平均持续时间

javascript - 用express更新了文档

java - 如何在java中通过JNDI连接MongoDB

java - Mongo数据库从 map 保存数据

java - 无法在java中通过JNDI连接MongoDb