optimize queries

This commit is contained in:
barisusakli
2014-09-06 00:58:03 -04:00
parent 421d091828
commit 779b2a8d73
3 changed files with 21 additions and 8 deletions

View File

@@ -439,15 +439,13 @@
};
Groups.getUserGroups = function(uids, callback) {
var ignoredGroups = ['registered-users'];
db.getSetMembers('groups', function(err, groupNames) {
if (err) {
return callback(err);
}
var groupKeys = groupNames.filter(function(groupName) {
return ignoredGroups.indexOf(groupName) === -1;
return groupName !== 'registered-users' && groupName.indexOf(':privileges:') === -1;
}).map(function(groupName) {
return 'group:' + groupName;
});

View File

@@ -404,15 +404,25 @@ var async = require('async'),
var tids = posts.map(function(post) {
return post.tid;
}).filter(function(tid, index, array) {
return array.indexOf(tid) === index;
});
topics.getTopicsFields(tids, ['cid'], function(err, topics) {
if (err) {
return callback(err);
}
var cids = topics.map(function(topic) {
return topic.cid;
var map = {};
topics.forEach(function(topic) {
if (topic) {
map[topic.tid] = topic.cid;
}
});
var cids = posts.map(function(post) {
return map[post.tid];
})
callback(null, cids);
});
});

View File

@@ -348,7 +348,7 @@ var async = require('async'),
return callback(err);
}
var postKeys = pids.map(function(pid) {
var postKeys = pids.filter(Boolean).map(function(pid) {
return 'post:' + pid;
});
@@ -379,14 +379,19 @@ var async = require('async'),
results.users.forEach(function(user) {
users[user.uid] = user;
});
var tidToPost = {};
postData.forEach(function(post, index) {
post.user = users[post.uid];
post.index = results.indices[index] + 1;
post.timestamp = utils.toISOString(post.timestamp);
tidToPost[post.tid] = post;
});
callback(null, postData);
var teasers = tids.map(function(tid) {
return tidToPost[tid];
});
callback(null, teasers);
});
});
});