convert uid mappings to sorted sets

email:uid, username:uid, userslug:uid, fullname:uid all converted to
sorted sets
prevents hitting mongodb document size limit
This commit is contained in:
Barış Soner Uşaklı
2015-05-07 13:43:06 -04:00
parent 073afe4db0
commit c56b30ff60
9 changed files with 120 additions and 69 deletions

View File

@@ -334,26 +334,18 @@ var async = require('async'),
if (!username) {
return callback();
}
db.getObjectField('username:uid', username, callback);
db.sortedSetScore('username:uid', username, callback);
};
User.getUidsByUsernames = function(usernames, callback) {
db.getObjectFields('username:uid', usernames, function(err, users) {
if (err) {
return callback(err);
}
var uids = usernames.map(function(username) {
return users[username];
});
callback(null, uids);
});
db.sortedSetScores('username:uid', usernames, callback);
};
User.getUidByUserslug = function(userslug, callback) {
if (!userslug) {
return callback();
}
db.getObjectField('userslug:uid', userslug, callback);
db.sortedSetScore('userslug:uid', userslug, callback);
};
User.getUsernamesByUids = function(uids, callback) {
@@ -382,11 +374,11 @@ var async = require('async'),
};
User.getUidByEmail = function(email, callback) {
db.getObjectField('email:uid', email.toLowerCase(), callback);
db.sortedSetScore('email:uid', email.toLowerCase(), callback);
};
User.getUsernameByEmail = function(email, callback) {
db.getObjectField('email:uid', email.toLowerCase(), function(err, uid) {
db.sortedSetScore('email:uid', email.toLowerCase(), function(err, uid) {
if (err) {
return callback(err);
}