2016-01-27 3 views
4

В документации разреженного индекса я нашел записку о MongoDB 3.2 частичных индексыЧастичные индексы в MongoDB/мангусте

Изменены в версии 3.2: Запуск в MongoDB 3.2, MongoDB обеспечивает возможности создавать частичные индексы. Частичные индексы предлагают надмножество функциональности разреженных индексов. Если позднее вы используете MongoDB 3.2 или , частичные индексы должны быть предпочтительнее, чем разреженные индексы.

Partial indexes очень полезно, и я хочу использовать их в своем проекте. Можно ли использовать их в мангусте?

ответ

10

В текущей версии Mongoose 4.3.7 вы не можете определить частичные индексы в схеме, но вы все равно можете использовать Partial Indexes of MongoDB 3.2.

Вам просто нужно создать индексы, используя собственный драйвер.

// ScheduleModel is a Mongoose Model 
ScheduleModel.collection.createIndex({"type" : 1 } , {background:true , partialFilterExpression : { type :"g" }} , function(err , result){ 
    console.log(err , result); 
}); 

После этого, каждый запрос, который соответствует partialFilterExpression будет индексироваться.

+0

спасибо за ответ – styopdev

5

Теперь можно изначально с Mongoose +4.6.1

Book.index({user: 1, author: 1, complete: 1}, {unique: true, partialFilterExpression: {complete: true}}); 
+0

Есть ли документы для этого? – Alendorff

+1

@Alendorff нет. Причина, по которой я думаю, что это не так, заключается в том, что Mongoose отправляет команду в Database Engine, поэтому Mongoose не имеет никакого отношения. Но ИМХО это должно. Некоторые исследования приведут вас к проблемам, которые используют эту функцию в Мангуста: https://github.com/Automattic/mongoose/search?q=partialFilterExpression&type=Issues&utf8=%E2%9C%93 Подтвердив, что это возможно. – raphaklaus