Индексация NULL в mongoDB

У меня есть коллекция mongodb, например


{
    template_id: { type: String, required: true },
    owner: {
        user_id: { type: String, required: true }
    },
    assignee: {
        user_id: { type: String, required: false }
    }
    //...other fields
}

Для этого документа существует составной индекс (неразреженный и неуникальный),

{ template_id: 1, owner: 1, assignee: 1 }

В этом документе правопреемник может иметь значение или может быть нулевым. Однако важен шаблон запроса для выборки записей, содержащих null.

Индексируются ли записи с нулевыми значениями, чтобы я мог использовать их для запросов?


person Sharath Chandra    schedule 08.04.2019    source источник
comment
В этом документе владелец и правопреемник могут иметь значение или могут быть нулевыми. Тогда ваша схема неверна, поскольку required означает, что она не может быть ни отсутствующей, ни null. Существуют также определенные различия между отсутствующими и null как для запросов, так и для индексов.   -  person Neil Lunn    schedule 08.04.2019
comment
Я обновил схему. Бизнес-сценарий заключается в том, что назначенное поле может быть доступно или недоступно во время операции сохранения. Если он недоступен, то назначенное поле будет сохранено с нулевым значением. Тогда запрос для всех неназначенных записей будет выглядеть следующим образом: выбрать все записи, где правопреемник равен нулю. В этом случае работает составной индекс или будет полное сканирование?   -  person Sharath Chandra    schedule 08.04.2019