Spring Data Mongodb:如何转储通过QueryDsl生成的原始查询/命令?

use*_*934 12 java mongodb querydsl spring-data spring-data-mongodb

我正在使用Spring Data的Querydsl集成来使用谓词执行我的查询.

findAll(predicate, pageable)
Run Code Online (Sandbox Code Playgroud)

有没有办法转储执行的实际原始查询/命令?

我也查看了这个问题的答案,它对我不起作用. 配置MongoDB Java驱动程序的日志记录

- 更新 - 我设法通过在application.properties(而不是log4j.properties)中添加logging.level.org.mongodb.driver = DEBUG来使日志工作正常工作

但是,我仍然无法看到正在执行的原始查询:

2016-03-23 21:50:56 DEBUG查询:56 - 查询完成2016-03-23 21:50:56 DEBUG查询:56 - 在连接上发送命名空间testdb.reservation的查询[connectionId {localValue:4,serverValue: 42631}]到服务器ds046785.mongolab.com:39186

小智 5

通过在 mongo shell 中使用以下命令设置配置文件值来启用分析器:

db.setProfilingLevel(2)
Run Code Online (Sandbox Code Playgroud)

可以使用以下命令查看分析器的输出:

db.system.profile.find( { millis : { $gt : 100 } } )
Run Code Online (Sandbox Code Playgroud)

此命令显示所有超过 100 毫秒的操作