Mongo не применяет набор фильтров индекса через planCacheSetFilter - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь применить набор фильтров индекса для очень простого случая. Но это не работает. Даже для действительно простых случаев.

Я создал простую коллекцию, в которой каждая запись выглядит так:

{
    "_id" : ObjectId,
    "SetId" : 324,
    "id_internal" : "BBU1P0ALB",
    "SetName" : "Name",
    (...)
} 

и я добавил индекс:

{
    "SetName" : 1,
    "id_internal": 1
}

Наконец-то я подготовил запрос, который выглядит так:

db.TestCollection.find( { SetName: "Name" } );

Объяснение говорит, что indexFilterSet: значение false, как и ожидалось (и Collscan в качестве этапа для плана выигрыша). Наконец я приготовил:

db.runCommand(
   {
      planCacheSetFilter: "TestCollection",
      query: { SetName: "A" },
      indexes: [
        { "SetName_1_id_internal_1" : 1 }
      ]
   }
)

Теперь после повторной попытки запроса (find ({SetName: "Name"})) я ожидал, что объяснение скажет indexFilterSet: true и затем выиграет простую точку в моем индексе. Но этого не происходит. Очевидно: db.runCommand ({planCacheListFilters: "TestCollection"}) подтверждает, что мой фильтр был добавлен.

Можете ли вы помочь мне с настройкой формы запроса? Или есть другая проблема?

Спасибо за любую помощь!

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