如何加快节点服务

时间:2019-04-17 20:30:26

标签: node.js mongoose

我有两个集合categorytypescategories,每个类别类型都有多个类别。在获取类别的每个索引中的所有类别详细信息时,应该有一个category_type字段,其中提供了category_type的所有详细信息。

我的代码是:

exports.findAllWithParentChild = (req, res) => {
    let resData = [];
    Models.Category.find()
    .then(data => {
        var results = [];
        async.each(data,function(cat,callback) { 
            console.log(cat.categorytype_id)
            Models.CategoryType.findOne({'_id' : mongoose.Types.ObjectId(cat.categorytype_id)},function(err,catType) {
            var obj = cat.toObject();
            obj.category_type = catType;
            results.push(obj);
            callback(err);
        });            
    },
    function(err) {
        if (err) throw err;
        res.send({
            response: true,
            message: "Category deleted successfully.",
            data : results
        });
     });
  });
};

以及我需要的格式:

{
        "_id": "5cb78c44ede6452278d13fbe",
        "title": "fhhghgf",
        "description": "hgfhgf",
        "slug": "hgfhgfhgf",
        "categorytype_id": "5cb78ba8ede6452278d13fb6",
        "user_id": "hgfhgfh",
        "status": true,
        "created_at": "2019-04-17T20:27:48.821Z",
        "updated_at": "2019-04-17T20:27:48.821Z",
        "__v": 0,
        "category_type": {
            "_id": "5cb78ba8ede6452278d13fb6",
            "title": "asde",
            "description": "asde",
            "slug": "asde",
            "user_id": "asde",
            "status": true,
            "created_at": "2019-04-17T20:25:12.863Z",
            "updated_at": "2019-04-17T20:25:12.863Z",
            "__v": 0
        }
    },

还有什么更好的方法吗?感谢您的协助。

1 个答案:

答案 0 :(得分:0)

用下面的代码更改代码并检查输出

exports.findAllWithParentChild = (req, res) => {
    Models.Category.find({}).
    populate('categorytypes'). 
    exec(function (err, data) {
        if (err) return handleError(err);
        console.log('Success', data);
    });
};