子组Mongoose

时间:2017-07-11 16:59:56

标签: node.js mongodb mongoose

我正在尝试使用nodejs和mongoose从查询中获取子gruop。 我想要做的是以下内容: 我有这个系列: enter image description here enter image description here

我需要使用相同的'intent'对所有文档进行计数和分组,并创建一个具有'entity'值的子组,到目前为止,我已经运行了这个: 试试{

    //We first get the total interactions from all workspace
    let workspace = await Interaction.aggregate([
        { $match: { dateAdded: { $gte: todayStart, $lt: todayEnd }, workspace: workspaceID } },
        { $group: { _id: "$workspace", data: { $sum: 1 } } },
        { $sort: { _id: 1 } }
    ]).exec();

    //We then get the total results from conversations
    let results = await Interaction.aggregate([
        { $match: { dateAdded: { $gte: todayStart, $lt: todayEnd }, workspace: workspaceID } },
        { $group: { _id: '$intent', data: { $sum: 1 } } },
        { $sort: { _id: 1 } }
    ]).exec()
     //workspaceItems = workspace.map(function (Interaction) { return Interaction._id; });

    return res.json({
        total: workspace,
        result: results
    })

} catch (err) {
    console.log(err);
    return res.status(500).send(err)
}

结果如下所示:

{
"total": [
    {
        "_id": "Business",
        "data": 23
    }
],
"result": [
    {
        "_id": "N/A",
        "data": 2
    },
    {
        "_id": "PRODUCTO_BENEFICIOS",
        "data": 3
    },
    {
        "_id": "PRODUCTO_DESCRIPCION",
        "data": 10
    },
    {
        "_id": "REPORTE_TARJETA_PERDIDA",
        "data": 1
    },
    {
        "_id": "REQUISITOS",
        "data": 7
    }
]

}

我需要这样的结果:

{
"total": [
    {
        "_id": "Business",
        "data": 23
    }
],
"result": [
    {
        "_id": "N/A",
        "data": 2
    },
    {
        "_id": "PRODUCTO_BENEFICIOS",
        "entities: [{"TARJETAS","PROMOCIONES"."ETC..."}],
        "data": 3
    },
    {
        "_id": "PRODUCTO_DESCRIPCION",
        "entities: [{"TARJETAS","PROMOCIONES"."ETC..."}],
        "data": 10
    },
    {
        "_id": "REPORTE_TARJETA_PERDIDA",
        "entities: [{"TARJETAS","PROMOCIONES"."ETC..."}],
        "data": 1
    },
    {
        "_id": "REQUISITOS",
        "entities: [{"TARJETAS","PROMOCIONES"."ETC..."}],
        "data": 7
    }
]

}

我希望明确,如果您知道如何使用mongoose,请告诉我。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

尝试将第二个查询更改为以下

$push

如果您想要一个唯一的实体列表,可以使用{{1}}代替{{1}}