如何解决使用 mongodb java 驱动程序时,queryPlanner 中缺少字段 queryHash 和 planCacheKey
在本地开发期间,我尝试使用解释来分析 mongodb 查询。我正在使用以下代码段来提取解释输出
使用 MongoDB 版本 4.2 和 mongo-java-driver 版本 3.12.2
Document explainDocument = new Document();
explainDocument.put("find",collectionName);
explainDocument.put("filter",queryObject);
Document command = new Document();
command.put("explain",explainDocument);
Document explainResult = mongoTemplate.executeCommand(command);
这很好用,在explainResult的queryPlanner字段中,我得到以下输出
{
"plannerVersion": 1,"namespace": "mydb.myCollection","indexFilterSet": false,"parsedQuery": { ... },"winningPlan": { ... },"rejectedplans": [
]
}
但是当我在 mongo shell 上运行相同的查询时
db.getCollection('myCollection').find({...query}).explain()
我明白了
{
"plannerVersion" : 1,"namespace" : "mydb.myCollection","indexFilterSet" : false,"parsedQuery" : { ... },"queryHash" : "B6F93250","planCacheKey" : "5BE08F08","winningPlan" : { ... },"rejectedplans" : []
}
我也得到 queryHash
和 planCacheKey
。我怎样才能使用我的 java 驱动程序获得这些?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。