所谓的游标就是指的数据可以一行行的进行操作,需要使用find()函数进行游标控制。
例如db.students.find() 返回值就是一个游标(var cursor = db.students.find())。对于返回的游标要想进行操作,需要两个函数:
1、判断是否有下一行数据:hasNext()
2、取出当前数据:next()
db.students.find().hasNext()
true
db.students.find().next()
{
"_id" : ObjectId("5be9271d16d1fcb72bc0dd41"),
"name" : "张三",
"sex" : "男",
"score" : 70,
"address" : "西湖区",
"course" : [
[
"语文",
"政治"
]
]
}
这样写的话不管调用多少次next返回的都是张三,因为每次find都相当于获取一个新的游标,如果想正常返回next的值,需要用同一个游标:
var cursor = db.students.find()
cursor.hasNext()
true
cursor.next()
{
"_id" : ObjectId("5be9271d16d1fcb72bc0dd41"),
"name" : "张三",
"sex" : "男",
"score" : 70,
"address" : "西湖区",
"course" : [
[
"语文",
"政治"
]
]
}
cursor.next()
{
"_id" : ObjectId("5be9274916d1fcb72bc0dd42"),
"name" : "李思",
"sex" : "男",
"age" : 20,
"score" : 69,
"address" : "拱墅区"
}
网友评论