使用mongodb的aggregate实现获取数组最后一个元素
来源:互联网 发布:淘宝c店可以卖吃的吗? 编辑:程序博客网 时间:2024/05/17 17:44
需求
在使用mongodb做统计的时候,要求获取数组中最后元素作为统计元数据;
当接到这个需求的时候,挺差异的,这是什么样的变态需求啊;如果不使用aggregate来获取数组的最后元素,到是可以使用mongodb数组
db.users.find({},{books:{$slice:[index,length]}})
详见官方文档
那既然普通的查询有实现方式,理论上aggregate也应该有相应的方法。果不其然,在官网上找到了这个$slice (aggregation)
具体的实现代码如下(仅供参考)
db.users.aggregate([{ $match: { 'books': { $elemMatch: { $ne: null } } }}, { $project: { '_books': { $slice: ['$books', -1, 1] } }}])
我是先去除了数组为空的记录,然后将每条记录的books数组的最后的元素来取出来作为统计元数据。剩下的就是将数组拆分成单条记录,再做统计。完整代码如下
db.users.aggregate([{ $match: { 'books': { $elemMatch: { $ne: null } } }}, { $project: { '_books': { $slice: ['$books', -1, 1] } }}, { $unwind: '$_books'}, { $group: { _id: "$_books.name", count: { $sum: 1 } }}])
先这样吧,写的不好就当笔记用了。
阅读全文
0 0
- 使用mongodb的aggregate实现获取数组最后一个元素
- JavaScript 获取数组的最后一个元素
- php 获取数组第一个元素 以及最后一个元素 && 最后一个元素的键名
- awk命令的使用(三)获取数组的最后一个元素
- 获取数组最后一个元素的key值
- 删除数组的最后一个元素
- 取数组的最后一个元素
- 取数组的最后一个元素
- 使用php自带函数删除数组的第一个元素和最后一个元素
- php获取并删除数组的第一个和最后一个元素
- vector容器的end是指向最后一个元素的下一个位置,使用时要将迭代器减1,才能获取到最后一个
- MongoDB aggregate聚合函数的使用
- MongoDB中聚合(aggregate)的使用
- mongoDB中管道的使用,aggregate
- 使用mongodb的aggregate解决变态需求
- 使用java 操作mongodb的aggregate
- 删除数组最后一个元素
- 删除数组最后一个元素
- Linux中rpm命令用法
- 实现自定义相机(camera的使用)
- 非预定义异常
- vuejs2.0使用Sortable.js实现的拖拽功能
- Jquery对当前日期的操作(格式化当前日期)
- 使用mongodb的aggregate实现获取数组最后一个元素
- 语言模型系列之N-Gram、NPLM及Word2vec
- windows定时修改mongo数据库的测试地址
- JQuery alert 不弹框问题
- 当yum命令出现No more mirrors to try 处理方式
- VS解决BEX错误但无法关闭DEP保护的问题
- JavaScript基础(六)- 条件语句
- 不容错过的Vue2.0组件开发
- python为什么需要reload(sys)后设置编码