【发布时间】:2021-02-28 09:47:41
【问题描述】:
如果我有一个带有字段的 mongoengine 集合:
node_id = fields.StringField(max_length=255)
message = fields.StringField(max_length=255)
如何按node_id 分组并获得最大值。每个node_id 5 个文档?
例如: 如果数据库中的文档是:
然后,在按 node_id 分组并每组只获取 5 个文档后,预期的输出应该是这样的:
从文档和一些博客中,我能够提出以下查询,每个组仅提供 1 个文档:
Model.objects.aggregate({"$group": {"_id": "$node_id", "count": {"$sum": 1}, "sentence":{"$first": "$message"}}})
但我无法弄清楚每组获得最多 N 个文档的理想方法是什么?
【问题讨论】:
-
你所说的“记录”是什么?文件?
-
抱歉,条款不正确。我对不同数据库和公司内部使用的术语感到困惑。修复了反映“文档”而不是“记录”的术语。
-
好的,如果您需要,请告诉我。
标签: mongodb aggregation-framework mongoengine