簡體   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