【MongoDB学习笔记19】MongoDB的游标和查询选项

MongoDB使用游标来处理find查询到的结果文档集;

站在用户的角度思考问题,与客户深入沟通,找到梁山网站设计与梁山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站制作、成都网站设计、企业官网、英文网站、手机端网站、网站推广、域名注册网站空间、企业邮箱。业务覆盖梁山地区。

游标的使用实例:

> var cursor=db.post.find({"name.firstname":"joe"})   
> cursor    
{ "_id" : ObjectId("54ace1394ba07ed75df68f90"), "name" : { "firstname" : "joe", "lastname" : "schome" }, "age" : 28 }    
{ "_id" : ObjectId("54ace753eab1d0ba4abb48ab"), "name" : { "firstname" : "joe", "lastname" : "schome" }, "age" : 30 }    
{ "_id" : ObjectId("54ace777eab1d0ba4abb48ac"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 10 }, "age" : 30 }    
{ "_id" : ObjectId("54ace781eab1d0ba4abb48ad"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 6 }, "age" : 30 }    
{ "_id" : ObjectId("54ace785eab1d0ba4abb48ae"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 5 }, "age" : 30 }    
{ "_id" : ObjectId("54ace789eab1d0ba4abb48af"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 7 }, "age" : 30 }    
>

使用limit来返回前两个记录:

> cursor.limit(2)   
{ "_id" : ObjectId("54ace1394ba07ed75df68f90"), "name" : { "firstname" : "joe", "lastname" : "schome" }, "age" : 28 }    
{ "_id" : ObjectId("54ace753eab1d0ba4abb48ab"), "name" : { "firstname" : "joe", "lastname" : "schome" }, "age" : 30 }    
>

或者使用skip来跳过前3个记录:

> cursor.skip(3)   
{ "_id" : ObjectId("54ace781eab1d0ba4abb48ad"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 6 }, "age" : 30 }    
{ "_id" : ObjectId("54ace785eab1d0ba4abb48ae"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 5 }, "age" : 30 }    
{"_id" : ObjectId("54ace789eab1d0ba4abb48af"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 7 }, "age" : 30 }    
 >

或者使用sort指定键值排序: 

> cursor.sort({"age":1})    
{ "_id" : ObjectId("54ace1394ba07ed75df68f90"), "name" : { "firstname" : "joe", "lastname" : "schome" }, "age" : 28 }    
{ "_id" : ObjectId("54ace753eab1d0ba4abb48ab"), "name" : { "firstname" : "joe", "lastname" : "schome" }, "age" : 30 }    
{ "_id" : ObjectId("54ace777eab1d0ba4abb48ac"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 10 }, "age" : 30 }    
{ "_id" : ObjectId("54ace781eab1d0ba4abb48ad"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 6 }, "age" : 30 }    
{ "_id" : ObjectId("54ace785eab1d0ba4abb48ae"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 5 }, "age" : 30 }    
{ "_id" : ObjectId("54ace789eab1d0ba4abb48af"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 7 }, "age" : 30 }

综合使用sort/limit/skip,当然可以调整顺序得到不同的结果:

> cursor.sort({"name.comment":1}).skip(2).limit(1)
{ "_id" : ObjectId("54ace785eab1d0ba4abb48ae"), "name" : { "firstname" : "joe", "lastname" : "schome", "comment" : 5 }, "age" : 30 }
>

游标生命周期:

游标会消耗内存和其他资源,游标使用完后会释放资源以供数据库它用;游标会在以下情况终止,

(1)游标完成匹配结果的迭代后,它会清楚自身;

(2)客户端的游标已经不再作用域内,驱动程序回向服务器发送一条特别的消息,让其销毁;

(3)游标在十分钟内没有使用,游标自动销毁;


网站标题:【MongoDB学习笔记19】MongoDB的游标和查询选项
标题URL:http://hxwzsj.com/article/jdhpdd.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都营销网站制作 响应式网站建设 高端网站设计 移动网站建设 成都网站建设 重庆网站设计 成都网站建设公司 定制网站制作 手机网站建设 重庆网站制作 成都网站建设 成都网站制作 定制网站建设多少钱 网站建设 成都网站建设 网站建设方案 定制网站建设 上市集团网站建设 成都网站制作 外贸网站设计方案 成都网站建设 app网站建设