Я пытаюсь сделать быстрый скрипт для инициализации моих коллекций разработки в Meteor и обнаружил кое-что странное.
Вот уменьшенный пример того, что я получил:
B = new SimpleSchema({
name: { type: String, unique: true }
})
A = new SimpleSchema({
name: { type: String, unique: true },
bs: {type: [B], defaultValue: []}
})
As = new Mongo.Collection('as')
As.attachSchema(A)
As.remove({}, (e) => {
As.insert({name: 'a_1', bs: []})
As.insert({name: 'a_2', bs: []})
As.insert({name: 'a_3', bs: []})
})
Когда мое приложение запускается, я получаю следующую ошибку:
MongoError: E11000 duplicate key error index: meteor.as.$c2_bs.$.name dup key: { : null }
Проверяя базу данных, я вижу, что записи были созданы, и нет B, а тем более с нулевым именем.
Я сбросил метеор, чтобы убедиться, что мусора нет, но все равно получаю ту же ошибку.
Удаление ограничения uniq из схемы B устраняет ошибку (но, конечно, также позволяет мне вставлять недопустимые записи).
Есть ли что-то, что я упускаю? Разве я не должен использовать uniq во вложенных схемах?