Java执行Mongodb Raw Query

时间:2016-11-16 03:28:59

标签: java mongodb mongodb-query spring-data-mongodb

有没有办法以SQL的形式执行MongoDB查询,类似于JDBC Statement。

e.g。我想执行查询db.products.find({"_id" : ObjectId("56eadecd69eefd335e8d8f0d")}).pretty();,因为它使用的是Java。你能分享一些例子吗?我试过下面的代码

BasicDBObject obj = new BasicDBObject();
obj.append("$eval", query);
CommandResult cr = mongoTemplate.executeCommand(obj);
String createdBy = cr.getString("createdBy" );

但它返回错误

{ "serverUsed" : "xxxxx" , "ok" : 0.0 , "errmsg" : "not authorized on shopchatdb to execute command { $eval: \"db.products.find({\"_id\" : ObjectId(\"56eadecd69eefd335e8d8f0d\")}).pretty()\" }" , "code" : 13}

1 个答案:

答案 0 :(得分:0)

使用Jongo库,其查询语法与mongo shell中的查询完全相似。

您的查询的Jongo等效项将是:

DB db = new MongoClient().getDB("dbname");

Jongo jongo = new Jongo(db);
MongoCollection products = jongo.getCollection("products");

MongoCursor<Product> all = friends.find("{"_id" : ObjectId("56eadecd69eefd335e8d8f0d")}").as(Product.class);

//Product.java is your POJO