在MongoDB Java 驱动程序中如何使用"解释"选项?
db.orders.aggregate([
{ $match: { status: "A" } },
{ $sort: { total: -1 } }
],
{ explain: true }
)
Collection.aggregate()
不接受选项
orders.aggregate(Arrays.asList(
Aggregates.match(Filters.eq("status","A")),
Aggregates.sort(Sorts.descending("total"))
))
答案 0 :(得分:2)
您可以退回到runCommand并以这种方式使用explain command。
类似的东西
db.runCommand(new Document(myMap))
myMap所在的位置(用JSON编写)
{"explain": {"aggregate": "my.collection", "pipeline": [{"$project": {"_id": 1}}]}}
答案 1 :(得分:-1)
虽然我还没有对此进行过测试,但您可以尝试通过创建Bson
文档来传递该列表以汇总为:
Bson match = Filters.eq("status","A");
Bson explain = Filters.eq("$explain","true");
orders.aggregate(Arrays.asList(
Aggregates.match(match),
Aggregates.sort(Sorts.descending("total")),
Aggregates.project(explain)));
似乎还有一个现有的功能请求,通过MONGODB-JIRA#2104.
上的java驱动程序方法来实现相同的功能