Так что я довольно новичок в mongoDb, поэтому я считаю, что это может быть недоразумением при общем использовании. так терпите меня.
У меня есть схема документа, с которой я работаю как таковая
{
name: "bob",
email: "bob@gmail.com",
logins: [
{ u: 'a', p: 'b', public_id: '123' },
{ u: 'x', p: 'y', public_id: 'abc' }
]
}
Моя проблема в том, что мне нужно убедиться, что публичные идентификаторы уникальны в документе и коллекции,
Кроме того, существуют некоторые существующие записи, переносимые из базы данных mySQL, которые не имеют записей, и поэтому все они будут заменены значениями null
в mongo.
Я считаю, что это либо индекс
db.users.ensureIndex({logins.public_id: 1}, {unique: true});
, который не работает из-за отсутствующих ключей и выбрасывает E11000 duplicate key error index:
или это более фундаментальная проблема схемы в том, что я не должен вкладывать объекты в такую структуру массива. В каком случае что? отдельная коллекция для user_logins ??? что, кажется, идет вразрез с идеей встроенного документа.