gpt4 book ai didi

mongodb - Mongodb查找对象内最长数组的查询

转载 作者:行者123 更新时间:2023-12-02 00:04:30 25 4
gpt4 key购买 nike

我目前在 mongo 中为我的应用程序设置了这样的对象(简化的示例,为了清楚起见,我在这里删除了一些不相关的字段):

{
"_id" : ObjectId("529159af5b508dd71500000a"),
"c" : "somecontent",
"l" : [
{
"d" : "2013-11-24T01:43:11.367Z",
"u" : "User1"
},
{
"d" : "2013-11-24T01:43:51.206Z",
"u" : "User2"
}
]
}

我想做的是运行一个查找查询来返回“l”下具有最高数组长度的对象,并排序最高->最低,限制为 25 个结果。有些对象在数组中可能有 1 个对象,有些可能有 100 个。我想找出“l”下哪些对象最多。我是 mongo 的新手,到目前为止,其他所有内容都已完成,但我只是无法找出正确的参数来获取此特定查询。我感到困惑的是如何处理数组的长度计数、排序等。我可以通过解析集合中的所有内容来手动编码,但我确信 mongo 必须有一种方法可以做到这一点更有效率。我并不反对学习,如果有人知道任何更高级查询的资源或可以帮助我,我真的很感激,因为这是最后一篇! :-)

顺便说一句,node.js 和 mongo 结合在一起真是太棒了,我希望我很久以前就开始结合使用它们了。

最佳答案

使用聚合框架。方法如下:

db.collection.aggregate( [
{ $unwind : "$l" },
{ $group : { _id : "$_id", len : { $sum : 1 } } },
{ $sort : { len : -1 } },
{ $limit : 25 }
] )

关于mongodb - Mongodb查找对象内最长数组的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20170309/

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