我想检索以下信息:
select names from database where names like 'Jon';
但对于 Java 中的 MongoDB。本质上,它应该返回其中包含单词 Jon 的所有名称,例如 Jonathan、Jong 等。我知道 MongoDB 中有 $in
运算符,但我如何在 Java 中做同样的事情,使用Java驱动程序?我一直试图到处寻找它,但什么也没得到。我试过:query = new BasicDBObject("names", new BasicDBObject("$in", "Jon"));
和 query = new BasicDBObject("names", new BasicDBObject("$in", Jon));
但他们都没有工作:(请帮忙!
最佳答案
与该 SELECT 语句等效的 MongoDB Java 驱动程序将是:
BasicDBObject fields = new BasicDBObject().append("name", 1); // SELECT name
BasicDBObject query = new BasicDBObject().append("name", "Jon"); // WHERE name = "Jon"
DBCursor results = yourCollection.find(query, fields); // FROM yourCollection
当你想搜索字符串的一部分时,可以使用$regex
操作符:
query = new BasicDBObject("name", new BasicDBObject("$regex", "Jon"));
这将为您获取名称与 regular expression 匹配的所有对象Jon
,即在任何地方都包含字符串“Jon”的所有内容。
关于MongoDB 选择查询的 Java 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13712230/