如果我连接到父集合中的子集合,有时响应不会从子集合中显示

时间:2017-11-16 04:59:29

标签: node.js mongodb

我正在尝试显示来自两个集合的数据。我已经连接到父集合中的子(用户)集合,并从用户(子)集合中获取用户的一些基本细节,并与父集合数据一起显示。 问题是有时来自用户集合的数据不会显示。如果我再次刷新页面,则会显示。有时显示,有时不显示。如果我刷新它显示。通过调用API但同样的问题检查邮递员。有时响应不会从用户集合中显示。但每次都会显示父集合数据。 你能告诉我怎样才能解决这个问题。 请给我解决方案。

const viewAllReviews = (req, res, next) => {
  ParentTable.findOneById(req.params.id)
    .then((resp) => {
        const r = resp;
        if (resp.user_ratings.length > 0) {
            for (let i = 0; i < resp.user_ratings.length; i += 1) {
                ChildTable.findOneById(resp.user_ratings[i].userId)
                    .then((users) => {
                        r.user_ratings[i] = {
                            ratings: resp.user_ratings[i].ratings,
                            comments: resp.user_ratings[i].comments,
                            comment_added: resp.user_ratings[i].comment_added,
                            comment_updated: resp.user_ratings[i].comment_updated,
                            commentId: resp.user_ratings[i].commentId,
                            userId: resp.user_ratings[i].userId,

                            // data from user collection
                            username: users.username,
                            displayname: users.displayname,
                            profilepicture: users.profilepicture
                        };

                        if (i === resp.user_ratings.length - 1) {
                            res.result(resp.user_ratings, 200, next);
                        }
                    });
            }
        } else {
            res.result(r.user_ratings, 200, next);
        }
    })
    .catch(e => next(e));
};

用户收集的结果有时无法显示。如果我再次刷新,则显示

0 个答案:

没有答案