Java等效于MongoDB选择查询

时间:2012-12-04 21:27:03

标签: java mongodb

我想检索以下信息:

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

但他们都没有工作:(请帮忙!

3 个答案:

答案 0 :(得分:10)

与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”的所有内容。

答案 1 :(得分:1)

检查Mongo-Java official site,加上一个很好的library来映射mongo对象

答案 2 :(得分:0)

MongoDB中的$in运算符类似于SQL中的IN运算符。例如,它可以用于执行类似SQL的查询

SELECT * FROM table WHERE id IN {1, 4, 6, 7, 9}

这就是为什么它不适合你。使用正则表达式,正如其他人已经建议的那样。