MongoDB: убедитесь, что индекс не работает как с одним ключом, так и с составным ключом - PullRequest
1 голос
/ 19 ноября 2010

В течение нескольких часов я пытаюсь добавить объемные данные в мою коллекцию MongoDB с локальной настройкой, все установлено, кроме уникального индекса для ключа или ключей: (* ​​1001 *

Я использовал это:

ensureIndex({appid:1, userid:1}, {unique:true, dropDups:true, background:true})

тогда это (потому что я думаю, по какой-то причине индекс нескольких ключей не работает)

ensureIndex({userid:1}, {unique:true, dropDups:true, background:true})

после использования вышеупомянутых строк я попытался вставить миллионы строк из сценария php (как с помощью вставки, так иbatchInsert) и каждый раз дублируются идентификаторы пользователей: '(пожалуйста, сообщите мне об этом: (

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Я заметил, что sureIndex не будет перезаписывать существующий индекс.Вместо этого, я считаю, что вы должны сначала удалить существующий индекс, а затем запустить sureIndex.

0 голосов
/ 20 ноября 2010

Вероятно, неплохо бы посмотреть и убедиться, что индекс создан.По умолчанию операции записи (например, создание индексов) запускаются и забываются и не ждут ошибки / успеха.Это может быть ошибка в драйвере (PHP-клиент lib).

Вы можете запустить

db.coll.getIndexes()

, чтобы получить список индексов для коллекции.

...