Частичные индексы в TokuMX

Недавно мы перешли с MongoDB на TokuMX. В одной коллекции все наши документы имеют числовое поле "docType". Некоторые документы имеют поле "DL_Number", а другие нет. Для документов с полем "DL_Number" комбинация "docType" и "DL_Number" должна служить уникальным индексом.

Используя C++ Legacy, мы изначально создали такой индекс:

mongo::IndexSpec().addKey("docType").addKey("DL_Number").unique().partialFilterExpression(BSON("DL_Number" << BSON("$exists" << true)));

То, к чему мы стремились, было индексом, в котором "docType" и "DL_Number" предоставили бы уникальный ключ для документов, имеющих поле "DL_Number".

Утверждение сработало как find в MongoDB, но теперь, когда мы перешли на TokuMX, частичный фильтр больше не работает. Попытка вставить второй документ без поля "DL_Number" вызывает исключение.

У кого-нибудь еще была такая проблема с TokuMX? Вы смогли найти обходной путь?

1 ответ

Решение

Частичные индексы являются функцией MongoDB 3.2, но TokuMX основан на MongoDB 3.0, поэтому эта функция MongoDB недоступна в TokuMX.

Другие вопросы по тегам