aggregation-framework相关内容

Mongodb聚合——排序让查询变得很慢

Mongodb 3.2,安装在 centos 6 上,具有大量 RAM 和磁盘.我有一个包含 10K 文档的集合,其结构如下: {“身份证":5752034,“分数":7.6,"name":"华硕 X551 15.6 英寸笔记本电脑","categoryId":"803",“积极方面":[{“身份证":30030525,“名称":“价格",“分数":9.8,“频率":139,“排名":10009 ..
发布时间:2022-01-20 13:54:02 其他开发

如何获得聚合的前 n 个存储桶,以及将所有其他存储桶组合成“其他"存储桶?桶?

假设一个集合的模式如下所示: {"customer" : ,“购买":,} 现在,我想获得前 5 位客户(按购买数量),第 6 个桶是“其他",它结合了其他客户的所有购买数量. 基本上,聚合的输出应该是这样的: { "_id" : "customer100", "purchasequantity" : 4000000 }{“_id ..
发布时间:2022-01-20 13:53:54 其他开发

MongoDB 查询:$near 与聚合

我有一个类似的收藏 {"_class" : "用户",“_id":“id1",“地方":[{“_id":“1",“地址":“test1",“地点" : {“纬度":1,“经度":1}},{“_id":“2",“地址":“test2",“地点" : {“纬度":2,“经度":2}},...]} 我正在尝试检索用户的每个位置(2 公里范围内).此查询不起作用: db.users.ensureIn ..
发布时间:2022-01-20 13:52:58 其他开发

查找字段不存在的所有文档,加上如果字段存在则应用条件

有没有办法进行如下查询: 如果某个字段存在,它将对该字段应用条件,如果通过,它将添加返回文档并将其添加到结果中. 和如果该字段不存在,它也会将文档添加到结果中? 最后我们会收到所有符合条件的文档AND所有不存在该字段的文档. 解决方案 这样的事情怎么样: db.stackoverflow.find({$或:[{ 多少:{ $exists:false } },{ 多少:5 } ..
发布时间:2022-01-20 13:52:25 其他开发

如何使用 mongodb 聚合和检索整个文档

我对 mongodb 的聚合函数感到非常困惑.我只想在我的收藏中找到最新的文档.假设每条记录都有一个“已创建"字段 db.collection.aggregate({$组:{_id:0,'id':{$first:"$_id"},'最大':{$max:"$created"}}}) 产生正确的结果,但我想要结果中的整个文档?我该怎么做? 这是文档的结构: {"_id" : ObjectId ..
发布时间:2022-01-20 13:52:11 其他开发

以聚合顺序使用 $$ROOT

我正在尝试按某种顺序从集合中获取数据: db.data.aggregate([{$限制:1000},{$组:{_id: "$service",计数:{$sum: 1},数据:{$push:'$$ROOT'}}}]); 但得到下一个错误: Error("Printing Stack Trace")@:0()@src/mongo/shell/utils.js:37([对象数组])@src/mon ..
发布时间:2022-01-20 13:52:05 其他开发

在 MongoDB 中查询和过滤键名而不是值

我想从一个集合中找到与某个字符串部分匹配的所有键名. 我得到的最接近的方法是检查某个键是否存在,但这是完全匹配的: db.collection.find({ "fkClientID": { $exists:1 }}) 我想获取所有以 fk 开头的键. 解决方案 如果您拥有最新的 MongoDB 3.4.4,那么您可以在带有 $redact 作为 最 最快的方式,这可能是使用本机运 ..
发布时间:2022-01-20 13:51:20 前端开发

mongoDB聚合:基于数组名求和

我有以下比赛数据: {日期:20140101,持续时间:23232,赢:[{播放器:“播放器1",得分:2344324},{播放器:“播放器4",得分:23132}],损失:[{播放器:“播放器2",得分:324},{播放器:“播放器3",得分:232}]} 现在我想像这样计算所有玩家的输赢: 结果:[{播放器:“播放器1",获胜:12,损失:2},{播放器:“播放器2",胜:7,损失:8} ..
发布时间:2022-01-20 13:51:10 其他开发

加速 MongoDB 聚合

我有一个分片集合“my_collection",其结构如下: {"CREATED_DATE" : ISODate(...),"MESSAGE" : "测试消息",“LOG_TYPE":“事件"} mongoDB 环境由 2 个分片分片.上面的集合使用 LOG_TYPE 上的散列分片键进行分片.LOG_TYPE 属性还有 7 种其他可能性. 我在“my_collection"中有 100 ..
发布时间:2022-01-20 13:50:55 其他开发

通过拆分字段值来重塑文档

假设我们有一组原始数据: { "person": "大卫,102 岁"}{“人":“最大,8岁"} 我们想将该集合转换为: { "年龄": 102 }{“年龄":8 } 仅使用 mongo(d) 引擎.(如果所有人名或年龄的长度相等, $substr 可以完成这项工作,)有可能吗? 假设正则表达式是微不足道的/\d+/ 解决方案 MongoDB 3.4版本中的最优方式. ..