gpt4 book ai didi

mongodb - 从每个组中选择前 N 行

转载 作者:IT老高 更新时间:2023-10-28 13:13:20 26 4
gpt4 key购买 nike

我的博客平台使用 mongodb,用户可以在其中创建自己的博客。所有博客的所有条目都在条目集合中。条目的文档如下所示:

{
'blog_id':xxx,
'timestamp':xxx,
'title':xxx,
'content':xxx
}

正如问题所说,有没有办法为每个博客选择最后 3 个条目?

最佳答案

您需要首先按 blog_idtimestamp 字段对集合中的文档进行排序,然后执行一个初始组,以降序创建原始文档的数组.之后,您可以使用文档对数组进行切片以返回前 3 个元素。

在这个例子中可以遵循直觉:

db.entries.aggregate([
{ '$sort': { 'blog_id': 1, 'timestamp': -1 } },
{
'$group': {
'_id': '$blog_id',
'docs': { '$push': '$$ROOT' },
}
},
{
'$project': {
'top_three': {
'$slice': ['$docs', 3]
}
}
}
])

关于mongodb - 从每个组中选择前 N 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com