mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	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:
		
							
								
								
									
										18
									
								
								src/user.js
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/user.js
									
									
									
									
									
								
							| @@ -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); | ||||
| 			} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user