Mongoose 查询结果 - 将对象数组转换为以 _id 为键的对象

问题描述 投票:0回答:1

目前,我有以下查询,它返回与提供的查询匹配的对象数组。

const chats = await Chat.find({ _id: { $in: userChat.chatIds } })

结果是这样的:

[
   {id: 1, name: 'Chat 1'},
   {id: 2, name: 'Chat 2'},
   {id: 3, name: 'Chat 3'},
]

我有以下代码将对象数组转换为包含嵌套对象的对象,其中

id
是每个对象的
key

chats.reduce((obj, item) => ((obj[item._id] = item), obj), {})

结果符合预期:

{
   id1: {id: id1, name: 'chat1'},
   id2: {id: id2, name 'chat2'}
}

我是否可以在不使用

reduce
方法并使用 mongoose 方法的情况下将我的数据转换为这种格式。我尝试将
aggregate
方法与
$arrayToObject
运算符一起使用,但无法获得我想要的结果。关于如何实现这一目标有什么想法吗?谢谢。

mongodb mongoose mongodb-query
1个回答
0
投票

我认为这个聚合就是你想要的:https://mongoplayground.net/p/BU3jGQXVQtO

© www.soinside.com 2019 - 2024. All rights reserved.