mongodb聚合函数将对象数组转换为字符串数组
我有一些文档。每个文档都有一个挑战_id字段。我想将这些文档数组映射到字符串数组中。最终的字符串数组应该由每个文档
输入中的挑战ID组成:
[
{
_id: ObjectId("62c3e31931e7df585c39e4e1"),
activity_id: ObjectId("62c3e31931e7df585c39e4df"),
challenge_id: ObjectId("62bd543c3a3937000958f2dd"),
status: "active",
createdAt: ISODate("2022-07-05T07:07:05.823Z"),
updatedAt: ISODate("2022-07-05T07:07:05.823Z")
},
{
_id: ObjectId("62c3e33f299750585cc70b23"),
activity_id: ObjectId("62c3e33e299750585cc70b21"),
challenge_id: ObjectId("62bd543c3a3937000958f2dd"),
status: "active",
createdAt: ISODate("2022-07-05T07:07:43.612Z"),
updatedAt: ISODate("2022-07-05T07:07:43.612Z")
},
{
_id: ObjectId("62c3e359341e86585c65c714"),
activity_id: ObjectId("62c3e359341e86585c65c712"),
challenge_id: ObjectId("62bd543c3a3937000958f2dd"),
status: "active",
createdAt: ISODate("2022-07-05T07:08:09.409Z"),
updatedAt: ISODate("2022-07-05T07:08:09.409Z")
}
]
输出应该看起来像:
['62bd543c3a3937000958f2dd','62bd543c3a3937000958f2dd', '62bd543c3a3937000958f2dd' ]
可以使用聚合功能执行此操作?如何 ?
I have some documents in a collection. Every document has a challenge_id field. I want to map those document array into a string array. The final string array should consist of challenge ids from each document
input:
[
{
_id: ObjectId("62c3e31931e7df585c39e4e1"),
activity_id: ObjectId("62c3e31931e7df585c39e4df"),
challenge_id: ObjectId("62bd543c3a3937000958f2dd"),
status: "active",
createdAt: ISODate("2022-07-05T07:07:05.823Z"),
updatedAt: ISODate("2022-07-05T07:07:05.823Z")
},
{
_id: ObjectId("62c3e33f299750585cc70b23"),
activity_id: ObjectId("62c3e33e299750585cc70b21"),
challenge_id: ObjectId("62bd543c3a3937000958f2dd"),
status: "active",
createdAt: ISODate("2022-07-05T07:07:43.612Z"),
updatedAt: ISODate("2022-07-05T07:07:43.612Z")
},
{
_id: ObjectId("62c3e359341e86585c65c714"),
activity_id: ObjectId("62c3e359341e86585c65c712"),
challenge_id: ObjectId("62bd543c3a3937000958f2dd"),
status: "active",
createdAt: ISODate("2022-07-05T07:08:09.409Z"),
updatedAt: ISODate("2022-07-05T07:08:09.409Z")
}
]
output should looks like:
['62bd543c3a3937000958f2dd','62bd543c3a3937000958f2dd', '62bd543c3a3937000958f2dd' ]
Is it possible to do this with an aggregate function ? How ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
$ group
像这样:查看其在
You can use
$group
like this:See how it works on the playground example