【问题标题】:Execute mongoDB shell like query using a java class使用 java 类执行类似 mongoDB shell 的查询
【发布时间】:2018-12-19 10:59:32
【问题描述】:

使用 java 类我想执行存储在字符串变量中的 MongoDB shell 查询。目前我正在使用以下代码。

String query="db.INSTANT.insert( { item: 'card', qty: 12 } )";
MongoClient mongo = new MongoClient("localhost",27017);
DB db = mongo.getDB("mydb");
db.eval(query);

上面的代码可以很好地插入。但是我想执行像query=db.INSTANT.find({"item":"card"})这样的查找语句。有没有办法执行这个查询并打印集合集。

【问题讨论】:

    标签: java mongodb jackson mongo-java mongo-jackson-mapper


    【解决方案1】:

    假设eval的功能自3.0版本起已被弃用。

    Java Driver 中的帮助器 db.eval() 包装了 mongo eval 命令,所以你可以这样评估 JavaScript 代码

    String query="db.INSTANT.find( { item: 'card', qty: 12 } ).toArray()";
    

    【讨论】:

    • 我要打印结果集。你能用示例代码演示一下吗?
    • 您可以将结果转换为 (List) db.eval(query);
    • 我的类型转换为“List ob =(List) db.eval(query);”我得到了这个例外。 “线程“主”java.lang.ClassCastException 中的异常:com.mongodb.BasicDBObject 无法在 com.sixdee.demo.MongoQuery.main(MongoQuery.java:23) 处转换​​为 java.util.List”。它出了什么问题。
    • 你添加了“toArray()”吗?
    • 谢谢。它正在工作。有没有其他方法可以做到这一点。我的意图是使用 java 类执行普通的 MongoDB 查询。
    猜你喜欢
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多