【发布时间】:2019-08-26 00:06:35
【问题描述】:
更改聚合查询的输出,其中键是数据库中的字段名称。
我尝试了以下方法: How to use field value as key name in Mongodb result
但是会导致如下错误:
MongoError: $arrayToObject 需要 'k' 和 'v' 的对象键。发现不正确的键数:1
var data = await Message.aggregate([
{
$group: {
_id: '$message',
last_message: { $last: '$date_create', },
conversation: {
$push: '$$ROOT',
},
},
},
{
$project: {
input: { $arrayElemAt: ['$conversation.message', 0] },
output: { $arrayElemAt: ['$conversation.mainTopic', 0] },
_id: 0,
},
},
{ $sort: { last_message: -1 } },
]);
我想改变(当前结果)的输出:
{ “输入”:“测试”, “输出”:“一般” },
到:
{ “输入”:“测试”, “输出”:{一般:1,}, },
【问题讨论】:
标签: javascript node.js mongodb mongoose aggregation-framework