[英]Java excute Mongodb Raw Query
有没有一种方法可以执行类似于JDBC语句的SQL形式的MongoDB查询。
例如,我想执行查询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}
使用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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.