繁体   English   中英

Java执行Mongodb原始查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM