从猫鼬聚合响应中删除_Id [英] Remove _Id from mongoose Aggregate response

查看:62
本文介绍了从猫鼬聚合响应中删除_Id的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从返回的文档中删除_Id,这是我的代码:

I'm trying to remove the _Id from the returned documents, this is my code:

module.exports = function(app) {
    // Module dependencies.
    var mongoose = require('mongoose'),
        Contacts = mongoose.models.Contacts,
        api = {},
        limit = 10;

    api.contacts = function(req, res) {

        Contacts.aggregate([{
                $group: {
                    "_id": {
                        name: "$name",
                        city: "$city",
                        state: "$state"
                    }
                }
            }, {
                $sort: {
                    AgencyTranslation: 1
                }
            }, {
                $limit: req.query.limit | limit
            }],
            function(err, contacts) {
                if (err) {
                    res.json(500, err);
                } else {
                    res.json({
                        contacts: contacts
                    })
                }
            })
    };

    app.get('/api/contacts', api.contacts);
};

当前结果集如下:

{
   "contacts":[
       {"_id":{"name":"Joe","city":"ankorage","state":"AL"}},
       {"_id":{"name":"Mark","city":"washington","state":"DC"}}
       ...
   ]
}

我试图用"$ project"或$ project替换"_Id",并向该对象添加"_Id":0,就像其他人建议的那样,但是没有成功.

I tried to replace "_Id" with "$project", or $project, and adding "_Id": 0 to the object, as some have suggested elsewhere, but was not successful.

我也尝试过res.send(contacts),但是那只剥离了超级对象(联系人").

I also tried res.send(contacts), but that only stripped the super-object ('contacts').

任何建议都值得赞赏.

推荐答案

喜欢

Contacts.aggregate( [
    { $group: { "_id": { name: "$name",  city: "$city", state: "$state" } } },
    { $project: {_id: 0, name: '$_id.name', city: '$_id.city', state: '$_id.state'} },
    { $sort: { AgencyTranslation: 1 } },
    { $limit: req.query.limit | limit }
], function () {

});

这篇关于从猫鼬聚合响应中删除_Id的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆