java - Java中的MongoDb查找用户

标签 java mongodb database

我的数据库中有这三个用户,具有以下键:

乔恩 111

乔恩 222

乔恩 333

我目前写的代码只能通过key在数据库中找到一个用户。 我怎样才能返回所有这些用户?

public void getMongoDB() {

    DB db = mongo.getDB("people");
    DBCollection table = db.getCollection("users");

    BasicDBObject searchQuery = new BasicDBObject();
    searchQuery.put("key", "Jon-111"); // what do I do here to return all the 'Jon' users?

    DBCursor cursor = table.find(searchQuery);

    int dbSize = cursor.size(); // size is 1
    while (cursor.hasNext()) {
        logger.debug(""+cursor.next()+"\n");
    }       
    logger.debug("users table");

}

提前致谢

最佳答案

如果您希望搜索“Starts with Jon”,请尝试:

 searchQuery.put("key", java.util.regex.Pattern.compile("^Jon"));

您将需要使用正则表达式来执行此类查询,如我的示例所示。

为了您的利益,还有一些示例:

“以乔恩结尾”:

searchQuery.put("key", java.util.regex.Pattern.compile("Jon$"));

“包含乔恩”:

searchQuery.put("key", java.util.regex.Pattern.compile(".*Jon.*"));

关于java - Java中的MongoDb查找用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37219347/

相关文章:

java - 两个线程调用wait和notify

java - 包含静态成员的类实例的垃圾回收

java - 对可变对象的 volatile 引用——所有线程都可以看到对象字段的更新

arrays - 无法使用nodeJs更新mongodb中的嵌套数组,并且不会抛出错误

php - 自定义连接查询以获取 3 个表中的记录

java - 从excel中读取数据查询数据库

javascript - 如何将文件名设置为与数据库中的对象 ID 相同?

mongodb - 旧驱动程序版本与新 mongodb 服务器的兼容性

database - 将两个 postgres 数据库合并为一个的最简单方法?

java - Solr ; "rookie"问题