插入:
说明:插入一条数据,指定唯一[全局]ID=1,然后X=2
说明:插入一百条数据
查询:
说明:查询X=1的记录
说明:查询此集合的所有记录,跳过前3条,然后取前2条,根据X排序(升)
更新:
说明:第一个为查询条件,然后X=999并覆盖所有
说明:查询Z=100的记录,如果有Y,则更新Y=99
说明:查询Y=100,如果记录不存在,则创建Y=999的一条记录,如图:
说明:_id没有指定,则自动生成
查询+更新:
说明:插入3条C=1的记录
说明:根据C=1,只更新第一条记录为C=2
说明:根据C=1,同时更新第二,三条记录为C=2
删除:
说明:删除了3条记录,注意remove()不允许不传参数
说明:删除这个集合,等于删除所有记录
索引:
说明:获得此集合的所有索引,结果为有一个索引 _id=1
说明:为X创建索引,{x:1}为正向创建,{x:-1}为反向创建,查询更高效[记录不遍历,索引直接指]
说明:预先创建time正向索引,10秒后过期,之后会删除连带索引对应的记录
全文索引:
说明:为article创建全文索引,然后搜文全文,格式如上
说明:这里查询的空格是"或"条件
说明:这里查询的负号是不包含
说明:这里查询的""号是"与"条件,本身存在"",所以需要转义加反斜杠
说明:全文搜索[相似度],返回结果带相似度的,可以用于排序
说明:如上为排序后的
全文索引补充:
索引属性:
说明:创建复合索引,并指定名字[默认自动提供值为x_1_y_1_z_1_m_1],可以指定名字删除索引
说明:创建key m的正向和key n的正向索引组合,并且插入的key value不允许重复
说明:查询key m有值的记录
说明:创建存在key m的索引,若不存在key m的记录则不创建该记录索引
说明:查询不存在key m的记录,并强制指定name为m_1(key m正向索引)的记录,返回结果无
2D索引:
说明:查询方式
说明:形状表示方式
$near查询:
说明:创建字段w的2D索引
说明:,超过范围查询不到
说明:查询key w距离[1,1]最近的100个点
说明:查询key w距离[1,1]最近的100个点,限制最大距离10,near不支持$minDistance
$geoWithin查询
说明:查询矩形中[0,3]到[3,3]范围内的点
说明:查询圆形中,[0,0]表示圆心,5表示半径,范围内的点
说明:查询图形中,如上图范围的点
$geoNear查询
说明:geoNear是near的进化版,如上,第一个参数为geoNear:集合名字,第二个参数为near:坐标,第三个参数为minDistance:对简单near[索引]无效,num:限制返回的数目
说明:查询集合是location,距离[1,2]最近的点,并限制最大距离为10,取返回的第一个
2dsphere索引:
说明:w表示字段,值为球体,type表示类型,值为形状[若值为Polygon,则coordinates(坐标)可以为多个,若为其它形状,参数不同],试例:
db.集合.find({字段:{$geoWithin:{$geometry:{type:"Polygon",coordinates:[[[0,0],[3,6],[6,1],[0,0]]]}}}})