Commit 0674469f authored by strong's avatar strong

通过单独count和distinct的方式获取帖子列表的参与人数

parent 0e64aeef
...@@ -784,32 +784,43 @@ function getSubThreads(doc, sort, callback) { ...@@ -784,32 +784,43 @@ function getSubThreads(doc, sort, callback) {
if (sort) { if (sort) {
sortBy = sort; sortBy = sort;
} }
ForumThread.find(conditions, subThreadFields).populate('from', 'icon').limit(Number(20)).sort(sortBy).exec(function(err, docs) { async.parallel([function(cb){
if (err) { ForumThread.distinct('from', conditions, cb);
console.error(err); },function(cb){
callback(err, null); countAllByFid(conditions, cb);
} else { },function(cb){
var list = []; //用户去重 ForumThread.find(conditions, subThreadFields).populate('from', 'icon').limit(Number(20)).sort(sortBy).exec(function(err, docs) {
_.forEach(docs, function(one, i) { if (err) {
var flag = true; console.error(err);
_.forEach(list, function(two, k) { cb(err, null);
if(one.from._id == two.from._id){ } else {
flag = false; var list = []; //用户去重
_.forEach(docs, function(one, i) {
var flag = true;
_.forEach(list, function(two, k) {
if(one.from._id == two.from._id){
flag = false;
}
});
if(flag){
list.push(one);
} }
}); });
if(flag){ var obj = {};
list.push(one); obj.items = list;
} var newDoc = doc.toObject();
}); newDoc.subThreads = obj;
var obj = {}; cb(null, newDoc);
obj.docTotal = docs.length; }
obj.total = list.length; });
obj.items = list; }],function(err, results){
if (err) {
var newDoc = doc.toObject(); callback(err);
newDoc.subThreads = obj; } else {
var lastResult = results[2];
callback(null, newDoc); lastResult.subThreads.docTotal = result[1] || 0;
lastResult.subThreads.total = result[0];
callback(null, lastResult);
} }
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment