2016-06-09 5 views
1

Я пытаюсь добавить индекс, называемый «идентификатор» в моей коллекции, но она возвращает:MongoDB, как добавить уникальный индекс, называемый «идентификатор»

E11000 дубликат ключа ошибки индекса: collec.items. $ ID_1 DUP ключ: {: -27 }

Является ли это до того конфликта между _id и id? Мне действительно нужно поле id, чтобы быть уникальным, чтобы избежать дубликатов.

+1

Если у вас уже есть повторяющиеся значения в 'ид ', сначала удалите их, а затем попытайтесь добавить индекс –

ответ

1

Это до конфликта между _id и id?

Нет, это не конфликт. Вы хотите добавить уникальный индекс на поле, которое в настоящее время содержит повторяющиеся значения (один из этих дубликатов -27), так что MongoDB жалуется:

E11000 дубликат ключа индекса ошибки:. Collec.items $ ID_1 DUP ключ: {: -27 }

Сначала удалите повторяющиеся значения, а затем попытаться добавить индекс.

+1

. Спасибо, что неправильно прочитал сообщение об ошибке, и вы правы. – silveur

0

Вы пытаетесь обновить существующие _id с помощью id? Тогда монго не позволяет это делать. Вместо этого создайте документ. _id - уникальный идентификатор документов для монго.

Создание документа с уникальным id, как вам требуется,

>use db.docname.insert({ id:12345, name:"name" }) 
WriteResult({ "nInserted" : 1 }) 
>db.idreplace.find().pretty() 
{ 
     "_id" : ObjectId("57592f1f2aa2b6057f3286ce"), 
     "id" : 12345, 
     "name" : "name" 
} 

ИЛИ

добавить идентификатор к существующему документу следующим образом: Add new field to a collection in MongoDB

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