MongoDB golang驱动程序在将提示与CountDocument一起使用时不会返回无法识别的字段"hi



所以我正在使用官方的mongo驱动程序进行gogo.mongodb.org/mongo-driver,并且我在容器中运行mongodb v4。所有操作都可以正常工作,但是当我尝试向 CountDocument 添加提示时,它失败并显示错误unrecognized field hint。我已经在旧的 gh 问题和 jira 线程中看到过此错误,但这些情况下的问题是人们使用的是早于 3.6 的 mongo 版本,但我使用的是 v4,所以我无法找出问题所在。

opts := &options.CountOptions{}
opts.SetHint("client_1_created_at_1")
count, err := r.collection.CountDocuments(ctx, query, opts)
if err != nil {
return 0, err
}
return count, nil

MongoDB版本:4.0.6 蒙戈 驱动程序版本:1.0.1

mongo-go-driver 中的CountDocuments()遵循 mongo shellcountDocuments()实践,这是$match$groupaggregate。您将无法在aggregate上使用提示。

请参阅此处的实现。SetHint()选项具有误导性,我认为仍然存在错误。

旁注:应该信任查询规划器,只要你有合适的索引,mongo query planner 就会为你挑选正确的索引。

最新更新