【发布时间】:2016-02-19 23:35:38
【问题描述】:
我正在尝试制作一个快速脚本来初始化我在 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,更不用说一个空名称了。
我重置了流星以确保没有垃圾但仍然出现相同的错误。
从 B 模式中删除 uniq 约束可以修复错误(当然,也允许我插入无效条目)。
我有什么遗漏吗?我不应该在嵌套模式中使用 uniq 吗?
【问题讨论】:
标签: mongodb meteor meteor-collection2