2014-09-01 2 views
0

Чтобы включить уникальный индекс в узле я:MongoDB несколько индексов в поле

City.native(function(err, collection) { 
    collection.ensureIndex({ 
     'name': 1, 
    }, function(err, result) { 
     //nothing 
    }); 
}); 

Но я хотел бы включить текст индекса по имени также. Поэтому после выполнения вышеуказанного я делаю:

City.native(function(err, collection) { 
    collection.ensureIndex({ 
     'name': 'text' 
    }, function(err, result) { 
     //nothing 
    }); 
}); 

Это прекрасно создает оба показателя. Мой вопрос: есть ли шанс слить этот код? Я пробовал с

City.native(function(err, collection) { 
    collection.ensureIndex({ 
     'name': 1, 
     'name': 'text' 
    }, function(err, result) { 
     //nothing 
    }); 
}); 

но это создает только текстовый индекс.

+1

вам хотите создать два индекса. который требует запуска двух команд создания индекса. –

ответ

1

Чтобы включить уникальный индекс в узле, что нужно сделать:

City.native(function(err, collection) { 
    collection.ensureIndex(
     {'name': 1}, 
     {unique:true}, 
     function(err, result) { 
     //nothing 
    }); 
}); 

Теперь слить этот код: (Если упорядочения не задано для индекса, то оно возрастающий порядок)

City.native(function(err, collection) { 
    collection.ensureIndex(
     {'name': 'text'}, 
     {unique:true}, 
     function(err, result) { 
     //nothing 
    }); 
}); 
+0

Не должно быть '.ensureIndex ({name: 'text'}, {unique: true}, function (err, result) {... nothing ...})'? – lascort

+0

да @ lascort ... отредактировал сообщение, я пропустил брекеты, спасибо. – vmr

+0

теперь ваше обеспечениеIndex «запряденное»: P – lascort

Смежные вопросы