【Node.js】mongoose教程07--排重与计数
2016-06-05 17:07
573 查看
Sodino
文章目录1. 排重
2. 计数
唉唉,以上的官方文档,写了跟没写有什么区别。
控制台输出:
可以使用
控制台输出:
下一篇mongoose教程—更新About Sodino
文章目录1. 排重
2. 计数
排重
本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemo12345678910111213141516171819202122232425 | Query#distinct([field], [criteria], [callback]) Declares or executes a distict() operation. Parameters: [field] <String>[criteria] <Object, Query>[callback] <Function>Returns: <Query> thisSee: distinctPassing a callback executes the query. Example distinct(field, conditions, callback)distinct(field, conditions)distinct(field, callback)distinct(field)distinct(callback)distinct() |
field:可选项。String,用于指定需要排重的字段名称。当
field不填写时,不能用空字符串
“”代替,不填时也不出出现
criteria参数。
criteria:可选项。用于指定需要排重的范围。相当于
find()的查询条件。
callback:可选项。用于接受排重的结果。当没有填写该值时,可以通过链式调用
Query.exec(callback)获取排重结果。在存储实现的文章中共存了5个手机型号数据,可以用排重
Query.distinct()提出这些手机都是哪个国家生产的,并且这些国家的名字只出现一次。
12345678910 | function findAllCountry() { Phone.find({}).distinct('manufacturer.country').exec((err, countrys)=>{ console.log('---findAllCountry()---Remove duplicate------------------------------'); if (err) { console.log(err); } else { console.log(countrys); } });} |
计数
123456789101112131415161718192021 | Query#count([criteria], [callback])Specifying this query as a count query. Parameters:[criteria] <Object> mongodb selector[callback] <Function> Returns:<Query> this Passing a callback executes the query. Example: var countQuery = model.where({ 'color': 'black' }).count();query.count({ color: 'black' }).count(callback)query.count({ color: 'black' }, callback)query.where('color', 'black').count(function (err, count) { if (err) return handleError(err); console.log('there are %d kittens', count);}) |
Query.count()进行计数。
criteria:可选参数,表示要计数的查询条件。当表示要全部计数时,可用空对象
{}代替。
callback:可选参数,用于接收计数结果。以下代码演示统计当前的
Phone数量:
12345678910111213 | phoneSchema.statics.printCount = function() { // 其它的count()计算方法见以下链接:http://mongoosejs.com/docs/api.html#query_Query-count // Model.count([selector], [callback]) this.count({}, (err, count) => { console.log('---printCount()-----------------------------') if (err) { console.log(err); } else { console.log('phone count=' + count); } });}; |
下一篇mongoose教程—更新About Sodino
相关文章推荐
- 【Node.js】mongoose教程06--排序
- 【Node.js】mongoose教程05--查询
- 【Node.js】mongoose教程04--存储
- 【Node.js】mongoose教程03--Schema与Model
- 【Node.js】mongoose教程01--工程搭建
- 在Ubuntu上安装Node.js
- ubuntu搭建node.js+express
- Node学习笔记(三):基于socket.io web版你画我猜(一)
- nodejs(1)
- Angular + Node 生成 随机数
- Node.js之Express二
- node中的Stream-Readable和Writeable解读
- Node.js Hello
- Node.js
- LeetCode--No.24--Swap Nodes In Pairs
- [LeetCode]problem 116. Populating Next Right Pointers in Each Node
- windows平台上搭建node.js开发环境
- 237. Delete Node in a Linked Lis
- 文件系统(ext2) inode、block、superblock概念整理
- leetcode-Swap Nodes in Pairs-24