查询结果 - 游标/Cursor
游标/Cursor对象代表了一个查询上下文,它只是记录了数据库地址、查询条件、 查询选项等选项,并没有物理地访问数据库。要真正地获取数据,需要使用游标对象 的方法:forEach()、map()或fetch()。
≡ 游标循环 - Cursor.forEach(callback,[thisArg])
forEach()方法用来对游标匹配的文档集中的每一个文档执行 callback参数指定的处理函数。下面的示例在终端打印persons集合中所有名为 Jason的文档的电话字段:
var demo = new Mongo.Collection("persons");
demo.find({name:"Jason"}).forEach(function(doc){
console.log(doc.tel);
})
参数thisArg是可选的,用来设置在处理函数中的this对象。
≡游标映射 - Cursor.map(callback,[thisArg])
map()方法将游标匹配的每一个文档对象,通过callback参数指定的 映射函数映射为一个新的值,并返回这些新值构成的数组。下面的示例提取 persons集合中所有名为Jason的文档的电话:
var demo = new Mongo.Collection("persons");
var tels = demo.find({name:"Jason"}).map(function(doc){
return doc.tel;
});
参数thisArg是可选的,用来设置在映射函数中的this对象。
≡ 游标提取 - Cursor.fetch()
fetch()方法提取游标匹配的全部文档,返回这些文档组成的数组:
var demo =new Mongo.Collection("persons");
var persons =demo.find().fetch();
≡ 游标计数 - Cursor.count()
count()方法返回游标匹配的文档数量。
执行以下命令复位test应用、删除源文件:
~/test$ meteor reset↵
~/test$ rm -rf \*↵
执行以下命令拷贝col-cursor示例代码、运行并查看运行结果:
~/test$ cp ~/demos/col-cursor/* .↵
~/test$ meteor↵
理解并修改col-cursor示例代码,通过练习掌握游标对象的使用方法。