在nodejs中显示2个两个表记录

时间:2018-07-16 05:22:35

标签: node.js mongodb

我有两个MongoDB集合。 1)用户 2)评论。

在第一个集合中,我存储了用户名和ID。和第二张表我已经存储了user_id以及评论和星级。

我想在列表页面上显示用户及其评论。

我已经写了下面的代码,但是没有用。

var getTopSellers = function () {
            var defer = Q.defer();
            User.find({ isRegistered: true }).sort({ updatedAt: -1 }).limit(10).exec(function (err, sellers) {
                if (!err) {					
                    if (sellers && sellers.length > 0) {
                        for (var i = 0; i < sellers.length; i++) {
                            var sellerDetails = {};
                            var tempObj = {};
                            try {                               
                                tempObj.reviews = getreviews(sellers[i]._id);
                                sellerArr.push(tempObj);
                            } catch (e) {
                                // console.log("catch error:-", e);
                            }
                        }
                        out = U.getJson(C.SUCCESS_CODE, C.SUCCESS, sellerArr);
                        defer.resolve(out);
                    } else {
                        out = U.getJson(C.KNOWN_ERROR_CODE, 'No data found');
                        defer.reject(out);
                    }
                } else {
                    console.log("Error:-", err);
                    out = U.getJson(C.ERROR_CODE, C.INETRNAL_SERVER_ERROR, b, err);
                    defer.reject(out);
                }
            })
            return defer.promise;
        };		
		
var getreviews = function (user_id) {
            var defer = Q.defer();
            Review.find({ user_type: user_id }).sort({ updatedAt: -1 }).limit(10).exec(function (err, reviews) {
                if (!err) {					
                    if (reviews && reviews.length > 0) {                        
                        out = U.getJson(C.SUCCESS_CODE, C.SUCCESS, reviews);
                        defer.resolve(out);
                    } else {
                        out = U.getJson(C.KNOWN_ERROR_CODE, 'No data found');
                        defer.reject(out);
                    }
                } else {
                    console.log("Error:-", err);
                    out = U.getJson(C.ERROR_CODE, C.INETRNAL_SERVER_ERROR, b, err);
                    defer.reject(out);
                }
            })
            return defer.promise;
};		

请提出建议

0 个答案:

没有答案