#arangodb
#arangodb
Вопрос:
Я хочу создать частичный индекс для коллекции, но индекс должен применяться к документам по условиям. Например, я хочу проверять уникальность документов только в том случае, если они имеют определенное значение поля. Другими словами, я ищу какую-то конструкцию для создания индекса:
db.person.createIndex(
{ age: 1},
{ partialFilterExpression: { age: { $gte: 18 }}
);
Этот пример взят из MongoDB, и он применяет индекс к документам со значением поля «возраст», превышающим 18
Ответ №1:
Невозможно создать «отфильтрованный индекс» (как вы можете в SQL). Согласно документам, вы можете включать атрибуты, но не условно.
Вы могли бы попробовать использовать разреженный индекс, но я думаю, что лучше всего добавить age
атрибут в индекс «skiplist», который поддерживает сортировку и gt
/ lt
или оценку.
Убедитесь, что вы используете эту explain
функцию для проверки использования индекса.