mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 11:05:54 +01:00 
			
		
		
		
	upgrade scripts
upgrade groups to sorted set(groups:createtime) upgrade upgrade groups:<name>:members to sorted set new database methods tests
This commit is contained in:
		| @@ -400,6 +400,50 @@ module.exports = function(db, module) { | ||||
| 		}); | ||||
| 	}; | ||||
|  | ||||
| 	module.isMemberOfSortedSets = function(keys, value, callback) { | ||||
| 		if (!Array.isArray(keys)) { | ||||
| 			return callback(); | ||||
| 		} | ||||
| 		value = helpers.valueToString(value); | ||||
| 		db.collection('objects').find({_key: {$in: keys}, value: value}, {fields: {_id: 0, _key: 1, value: 1}}).toArray(function(err, results) { | ||||
| 			if (err) { | ||||
| 				return callback(err); | ||||
| 			} | ||||
|  | ||||
| 			results = results.map(function(item) { | ||||
| 				return item._key; | ||||
| 			}); | ||||
|  | ||||
| 			results = keys.map(function(key) { | ||||
| 				return results.indexOf(key) !== -1; | ||||
| 			}); | ||||
| 			callback(null, results); | ||||
| 		}); | ||||
| 	}; | ||||
|  | ||||
| 	module.getSortedSetsMembers = function(keys, callback) { | ||||
| 		if (!Array.isArray(keys) || !keys.length) { | ||||
| 			return callback(null, []); | ||||
| 		} | ||||
| 		db.collection('objects').find({_key: {$in: keys}}, {_id: 0, _key: 1, value: 1}).toArray(function(err, data) { | ||||
| 			if (err) { | ||||
| 				return callback(err); | ||||
| 			} | ||||
|  | ||||
| 			var sets = {}; | ||||
| 			data.forEach(function(set) { | ||||
| 			 	sets[set._key] = sets[set._key] || []; | ||||
| 			 	sets[set._key].push(set.value); | ||||
| 			}); | ||||
|  | ||||
| 			var returnData = new Array(keys.length); | ||||
| 			for(var i=0; i<keys.length; ++i) { | ||||
| 			 	returnData[i] = sets[keys[i]] || []; | ||||
| 			} | ||||
| 			callback(null, returnData); | ||||
| 		}); | ||||
| 	}; | ||||
|  | ||||
| 	module.getSortedSetUnion = function(sets, start, stop, callback) { | ||||
| 		getSortedSetUnion(sets, 1, start, stop, callback); | ||||
| 	}; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user