我正在用Spring/Mongo/Jersey编写一个API来对POJO执行CRUD,该POJO具有如下属性的通用映射:我该如何使用Spring Data来显示mongo的查询计划(又名cursor.explain())
public class Thing {
private String id;
@Indexed
private Map<String,String> properties;
...
这很适合返回物品。我的资源代码如下所示:
BasicDBObject query = new BasicDBObject("properties.name", "vlad the impaler");
return Response.ok(myService.queryThings(query)).build();
我的抽象DAO是这样的:
public List<T> find(Query query) {
return mongoOps.find(query, clazzOfItem);
}
什么我也说不清是,如果@Indexed注释工作。我想尝试解释,(http://docs.mongodb.org/manual/reference/method/cursor.explain/),但我没有看到任何示例演示如何从弹簧数据调用较低级别的驱动程序API。
我希望能够打开调试像这样:
public List<T> find(Query query) {
if (debugOn) {
String queryPathDetails = mongoOps.executeCommand(/*NOW WHAT??*/).toString();
logger.log(queryPathDetails);
}
return mongoOps.find(query, clazzOfItem);
}
可以提供将非常感激任何帮助!
感谢您的快速响应! – sottitron 2015-03-03 17:35:45
我们可以对聚合查询做同样的事情吗?因为我无法为聚合查询做这件事,它可以正常查询。 – MasterCode 2016-06-23 20:56:14