繁体   English   中英

流星js simpleschema带有模式的索引已存在不同的选项

[英]meteor js simpleschema Index with pattern already exists with different options

我正在使用带有简单模式的流星js并获得

MongoError: Index with pattern: { username: 1 } already exists with different options

我围绕db.users集合的模式是

Schema = {};

Schema.User = new SimpleSchema({
...
 username: { 
     type: String, 
     unique: true, 
     regEx: /^[a-z0-9]{3,32}$/ , 
     max: 32,
     min: 3 },
...
});

我在mongodb中删除了索引,但是重新启动应用程序时仍然出现错误。 有人遇到这个吗?

流星自带的一些默认指标users集合。 帐户基础

/// DEFAULT INDEXES ON USERS
Meteor.users._ensureIndex('username', {unique: 1, sparse: 1});
Meteor.users._ensureIndex('emails.address', {unique: 1, sparse: 1});
Meteor.users._ensureIndex('services.resume.loginTokens.hashedToken',
                          {unique: 1, sparse: 1});
Meteor.users._ensureIndex('services.resume.loginTokens.token',
                          {unique: 1, sparse: 1});
// For taking care of logoutOtherClients calls that crashed before the tokens
// were deleted.
Meteor.users._ensureIndex('services.resume.haveLoginTokensToDelete',
                          { sparse: 1 });
// For expiring login tokens
Meteor.users._ensureIndex("services.resume.loginTokens.when", { sparse: 1 });

我没有检查,但我猜unique: true可能是你的架构是与上述相冲突的部分。

您可以将您的架构与现有的架构完美合并,在该架构中,已经为用户名和电子邮件设置了索引和唯一性。 因为您仅通过将它们显式设置为false来删除它们,否则它们将保留。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM