2020-03-16 记录mongdb(5)

2020-03-26  本文已影响0人  大风车呀大风车

游标:

查询操作返回的结果游标,游标的迭代和操作

投射:

只返回部分字段,内嵌文档的投射,数组的投射

开始读取文档 db.collection.find() 

语法:db.<collection>.find(<query>,<projection>)

图一 图二


清楚的显示文档 db.collection.find().pretty()

筛选文档  

匹配查询 db.collection.find({name:'abc'})   //可以写多个文档 

比较操作符 

{<filed>:{$<operator>:<value>}} //文档字段  操作符 操作对于查询值

                操作符如下:

图三

     例如写法: db.account.find({name:{$eq:'alice'}})

语法格式:{<filed>:{$in:[<value1>,<value2>...<valueN>]}}} 

图四

例如写法:db.account.find({name:{$in:['alice','tom']}})

逻辑操作符

图五

{flied:{$not:{<operator-expression>}}} //文档字段   不成立的表达式

例如写法 : db.account.find({balance:{$not:{$lt:500}}})

{$and:[{<expression1>},{<expression2>},.....,{<expressionN>}]}//文档字段   同时成立的表达式

例如写法:

图六

简写方式:

图七


语法格式:{$or:[{<expression1>},{<expression2>},.....,{<expressionN>}]}

语法格式:{$nor:[{<expression1>},{<expression2>},.....,{<expressionN>}]}

字段操作符

图八

语法格式:{<filed>:{$exists:<boolean>}} //文档字段 包含、不包含

语法格式:{<filed>:{$type:<BSON type>}}  {<filed>:{$type:[<BSON type1>,<BSON type2>]}} 

例如写法:db.account.fint({_id:{$type:'string'}})

数组操作符

图九

语法格式:{<filed>:{$all:[<value1>,<value2>]}} 

语法格式:{<filed>:{$elemMatch:[<query1>,<query2>]}}  

运算操作符

图十

语法格式:

图十一

文档游标:

db.collection.find() 返回一个文档集合游标。在不迭代的游标的情况下,只列出前20个文档。

可以直接使用游标下标直接访问文档集合中的某一个文档。游历完游标中的所有文档之后,或者在10分钟之后,游标会自动关闭。

noCursorTimeout() 函数保持游标一直有效。db.collection.find().noCursorTimeout()

在不遍历游标的情况下,需要主动关闭游标(关闭游标close())。

游标函数:

图十二

hasNext() 游标指向的文档集合中,如果还有没有游历过的剩余文档,hasNext()会返回true,反之返回false;

next()要求游标指向下一个文档集合中的文档;

foreach() 更加方便的遍历游标所指向的文档;

limit(<number>) 返回要求数量的文档

skip(<offset>)   会跳过指定数量的文档

count(<applySkipLimit>) 从元数组中得到计数的结果

图十三

sort(<document>) 排序 1表示从小到大正向、-1表示逆向

组合写法的顺序:sort、skip、limit

图十四 图十五
上一篇下一篇

猜你喜欢

热点阅读