Merge pull request #12833 from meteor/feature/user-index-async

User index async
This commit is contained in:
Gabriel Grubba
2023-10-27 09:16:30 -03:00
committed by GitHub
6 changed files with 21 additions and 21 deletions

View File

@@ -1774,21 +1774,21 @@ const setupUsersCollection = users => {
});
/// DEFAULT INDEXES ON USERS
users.createIndex('username', { unique: true, sparse: true });
users.createIndex('emails.address', { unique: true, sparse: true });
users.createIndex('services.resume.loginTokens.hashedToken',
users.createIndexAsync('username', { unique: true, sparse: true });
users.createIndexAsync('emails.address', { unique: true, sparse: true });
users.createIndexAsync('services.resume.loginTokens.hashedToken',
{ unique: true, sparse: true });
users.createIndex('services.resume.loginTokens.token',
users.createIndexAsync('services.resume.loginTokens.token',
{ unique: true, sparse: true });
// For taking care of logoutOtherClients calls that crashed before the
// tokens were deleted.
users.createIndex('services.resume.haveLoginTokensToDelete',
users.createIndexAsync('services.resume.haveLoginTokensToDelete',
{ sparse: true });
// For expiring login tokens
users.createIndex("services.resume.loginTokens.when", { sparse: true });
users.createIndexAsync("services.resume.loginTokens.when", { sparse: true });
// For expiring password tokens
users.createIndex('services.password.reset.when', { sparse: true });
users.createIndex('services.password.enroll.when', { sparse: true });
users.createIndexAsync('services.password.reset.when', { sparse: true });
users.createIndexAsync('services.password.enroll.when', { sparse: true });
};

View File

@@ -36,7 +36,7 @@ Accounts.oauth.registerService = name => {
// so this should be a unique index. You might want to add indexes for other
// fields returned by your service (eg services.github.login) but you can do
// that in your app.
Meteor.users.createIndex(`services.${name}.id`, {unique: true, sparse: true});
Meteor.users.createIndexAsync(`services.${name}.id`, {unique: true, sparse: true});
}
};

View File

@@ -1054,9 +1054,9 @@ Accounts.createUser = (options, callback) => {
///
/// PASSWORD-SPECIFIC INDEXES ON USERS
///
Meteor.users.createIndex('services.email.verificationTokens.token',
{ unique: true, sparse: true });
Meteor.users.createIndex('services.password.reset.token',
{ unique: true, sparse: true });
Meteor.users.createIndex('services.password.enroll.token',
{ unique: true, sparse: true });
Meteor.users.createIndexAsync('services.email.verificationTokens.token',
{ unique: true, sparse: true });
Meteor.users.createIndexAsync('services.password.reset.token',
{ unique: true, sparse: true });
Meteor.users.createIndexAsync('services.password.enroll.token',
{ unique: true, sparse: true });

View File

@@ -235,11 +235,11 @@ Accounts.sendLoginTokenEmail = ({ userId, sequence, email, extra = {} }) => {
};
const setupUsersCollection = () => {
Meteor.users.createIndex('services.passwordless.tokens.token', {
Meteor.users.createIndexAsync('services.passwordless.tokens.token', {
unique: true,
sparse: true,
});
Meteor.users.createIndex('services.passwordless.token', {
Meteor.users.createIndexAsync('services.passwordless.token', {
unique: true,
sparse: true,
});

View File

@@ -16,9 +16,9 @@ OAuth._pendingCredentials = new Mongo.Collection(
_preventAutopublish: true
});
OAuth._pendingCredentials.createIndex('key', { unique: true });
OAuth._pendingCredentials.createIndex('credentialSecret');
OAuth._pendingCredentials.createIndex('createdAt');
OAuth._pendingCredentials.createIndexAsync('key', { unique: true });
OAuth._pendingCredentials.createIndexAsync('credentialSecret');
OAuth._pendingCredentials.createIndexAsync('createdAt');

View File

@@ -5,7 +5,7 @@ import { Meteor } from 'meteor/meteor';
// otherwise lead to an inconsistent database state (when there are multiple
// configurations for a single service, which configuration is correct?)
try {
ServiceConfiguration.configurations.createIndex(
ServiceConfiguration.configurations.createIndexAsync(
{ service: 1 },
{ unique: true }
);