当从文档数组返回一个字段的数组时,如何让MongoDB返回数值数组而不是字典项数组?

2024-09-25 16:19:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我的集合中的每个文档都有一个文档数组,该数组中的每个文档都包含一个名为“sport”的字段。我只想返回一个数组,其中包含数组中每个成员的sport值。现在我在执行这个命令时得到了一个字典数组

c = db.users.aggregate([{'$project':{"id_nm":True, "activityArray.sport":True, "lengthArray":{'$size':"$activityArray"}}}])

尤其是输出:

^{pr2}$

有没有一种方法可以只返回一个数值数组,这样我就不必在将这些行放入数据帧之后再对它们进行解析?在


Tags: 文档命令projectidtruedb字典成员
1条回答
网友
1楼 · 发布于 2024-09-25 16:19:23

您可以通过以下方式获得所需的输出:

 db.users.aggregate([{$unwind: "$activityArray"},{$group: {_id: "$id_nm", activities: {$push: "$activityArray.sport"}}}, {$project: {"_id": 1, "activities":1, "lengthArray": {'$size': "$activities"}}}]);

甚至更好:

^{pr2}$

相关问题 更多 >