Частичные индексы в 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.