gpt4 book ai didi

spring - 我怎样才能哄 Spring Data 向我展示 mongo 的查询计划(又名 cursor.explain())

转载 作者:可可西里 更新时间:2023-11-01 09:11:25 24 4
gpt4 key购买 nike

我正在使用 Spring/Mongo/Jersey 编写一个 API,以在具有如下通用属性映射的 POJO 上执行 CRUD:

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 注释是否有效。我想尝试 explain,( http://docs.mongodb.org/manual/reference/method/cursor.explain/ ),但我没有看到任何示例说明如何从 spring 数据调用较低级别的驱动程序 API。

我希望能够像这样打开调试:

public List<T> find(Query query) {
if (debugOn) {
String queryPathDetails = mongoOps.executeCommand( /*NOW WHAT??*/ ).toString();
logger.log(queryPathDetails);
}
return mongoOps.find(query, clazzOfItem);
}

非常感谢您提供的任何帮助!

最佳答案

我们还没有为此提供支持,但您可以简单地设置一个断点 here org.springframework.data.mongodb.core.MongoTemplate.QueryCursorPreparer.prepare(..)

然后在您选择的调试器中,您可以简单地执行一个

cursor.explain()

例如通过 eclipse 显示 View 。

关于spring - 我怎样才能哄 Spring Data 向我展示 mongo 的查询计划(又名 cursor.explain()),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28818083/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com