首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过Java执行Mongo like查询(JSON)

通过Java执行Mongo like查询(JSON)
EN

Stack Overflow用户
提问于 2011-02-01 17:12:25
回答 5查看 32.5K关注 0票数 21

我想知道是否有一种方法可以直接通过Java执行mongo like查询,即我们将mongoDB like查询作为字符串作为字符串提供给mongoDB的Java驱动程序中的函数,然后返回一个DBCursor对象。类似于:

代码语言:javascript
运行
复制
import com.mongodb.*;
import java.net.UnknownHostException;
public class ExecuteQuery {
public static void main(String args[]){
    try{
          Mongo m = new Mongo();
          DB db = m.getDB("test");
          DBCollection coll = db.getCollection("first");
          DBObject doc = new BasicDBObject();
          DBCursor cur =coll.executeQuery("db.first.find({"username":"joe"})");
       }
       catch(UnknownHostException e){
          System.out.println(e);
       }
       catch (MongoException.DuplicateKey e) {
          System.out.println("Exception Caught" + e);
       }
}
}

注意:executeQuery()不是一个内置函数。它仅用于演示目的。那么,java api中是否有一个函数可以将json字符串转换为BasicDBObject实例呢?谢谢。

EN

Stack Overflow用户

发布于 2016-09-15 21:04:56

是的,有办法,通过将过滤器作为字符串传递。示例:

代码语言:javascript
运行
复制
BasicDBObject query = BasicDBObject.parse("{userId: {$gt: \"1\"}}");
FindIterable<Document> dumps = crapCollection.find(query);

您也可以使用com.mongodb.util.JSON,但我不建议您这样做。它不太具有描述性。

代码语言:javascript
运行
复制
DBObject dbObject = (DBObject)JSON.parse("{userId: {$gt: \"1\"}}");

请注意,这可能容易受到SQL注入的攻击,因为您自己解析/构建过滤器。

我推荐使用Jongo's parameterized query

票数 12
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4860728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档