您的位置:首页 > Web前端 > Node.js

【Node.js】mongoose教程07--排重与计数

2016-06-05 17:07 573 查看
Sodino
文章目录1. 排重
2. 计数

排重

本文的查询是指存储了5个手机数据后再查询。存储实现见文章:【Node.js】mongoose教程—存储。GitHub源码链接:sodino#MongoDemo
12345678910111213141516171819202122232425
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: