MongoDB中用Python获取Emotion集合所有maxEmotion属性值
解决MongoDB获取所有maxEmotion值的问题
嘿,我明白你遇到的困扰啦!你用db.Emotion.distinct("maxEmotion")得不到13个结果的原因很简单——distinct()方法的作用是返回指定字段的去重后的值,如果你的集合里有重复的maxEmotion值,它会自动合并相同的结果,所以数量自然会少于文档总数。
如果你想要获取每一条文档对应的maxEmotion值(不管重复,最终得到13个结果),可以用find()配合列表推导式来实现:
# 提取所有文档的maxEmotion值,保留重复项 emotions = [doc["maxEmotion"] for doc in db.Emotion.find({}, {"maxEmotion": 1, "_id": 0})]
简单解释下这段代码:
db.Emotion.find({}, {"maxEmotion": 1, "_id": 0}):查询集合里的所有文档,只返回maxEmotion字段,同时排除默认返回的_id字段,减少数据传输量- 列表推导式遍历查询结果,把每个文档中的
maxEmotion值提取出来,最终得到一个包含13个元素的列表
这样就能得到和文档数量一致的所有maxEmotion值啦!
内容的提问来源于stack exchange,提问作者IS Student
相关产品推荐
相关产品推荐

