Драйвер MongoDB golang не возвращает нераспознанное поле `подсказка` при использовании подсказки с CountDocument - PullRequest
1 голос
/ 20 июня 2019

Итак, я использую официальный драйвер mongo для go go.mongodb.org/mongo-driver и запускаю mongodb v4 в контейнере. Все операции работают нормально, но когда я пытаюсь добавить подсказку к CountDocument, происходит сбой с ошибкой «1002». Я видел эту ошибку, о которой сообщалось в старых проблемах gh и потоках jira, но проблема в этих случаях заключалась в том, что люди использовали версии mongo старше 3.6, но я использую 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 Mongo Версия драйвера: 1.0.1

1 Ответ

0 голосов
/ 23 июня 2019

CountDocuments() в mongo-go-driver следует практике mongo shell countDocuments(), то есть aggregate из $match и $group.Вы не сможете использовать подсказку на aggregate.

. См. Реализацию здесь .Опция SetHint() вводит в заблуждение и, я думаю, все еще существует по ошибке.

Примечание: следует доверять планировщику запросов, если у вас есть соответствующий индекс, планировщик запросов mongo подберет для вас правильный индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...