mongoDB

MongoDB之文档游标

2020-09-15  本文已影响0人  AbstractCulture

游标

db.collecton.find() 返回一个文档集合游标,在不迭代游标的情况下,只列出前20个文档;
个人理解,游标就是一个迭代器,里面存放了多个文档信息.

var cursor = db.accounts.find().noCursorTimeout();
cursor.close();
var cursor = db.accounts.find();
cursor
var cursor = db.accounts.find();
cursor[0]
method 描述
hasNext 判断是否存在未游历到的文档,返回值为boolean
next 读取下一个文档集合中的文档
forEach 遍历,学过java的都懂,这里我只能说懂得都懂
limit 截断,传入一个数值,limit(5)就是只返回5条,limit(0)就是返回所有信息
skip 跳过游标中的前n个文档,skip(5)就是跳过前5条
count 统计游标中的文档数量,count中可以传入一个参数applySkipLimit。
语法结构为: count<applySkipLimit>
默认情况下,applySkipLimit为false,即count不会考虑skip和limit的限制条件.
不提供筛选条件的情况下,MongoDB会从Metadata中取得结果
当数据库分布式结构较为复杂的时候,此函数的结果可能是不准确的,考虑使用聚合管道
sort 对游标中的文档进行排序,语法结构:sort(<document>)
document为排序的要求:{ field: ordering },其中1为ASC,-1为DESC
var cursor = db.accounts.find();
while ( cursor.hasNext() ){
    var data = cursor.next();
    printjson(data);
}
var cursor = db.accounts.find();
cursor.forEach(printjson);
var cursor = db.accounts.find();
cursor.limit(10);
var cursor = db.accounts.find();
cursor.skip(10).limit(5);
var cursor = db.accounts.find().skip(5).limit(5);
cursor.count(true);
db.accounts.find( {balance: { $exists: true} } ).sort( {  balance: -1,name: 1 } );
db.accounts.find( {balance: { $exists: true} } ).sort( { balance: -1} ).limit(1);
db.accounts.find( {balance: { $exists: true} } ).limit(1).sort( { balance: -1} ).skip(1);
上一篇 下一篇

猜你喜欢

热点阅读