博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongoDB 基本crud,索引
阅读量:7291 次
发布时间:2019-06-30

本文共 1447 字,大约阅读时间需要 4 分钟。

插入:

 

说明:插入一条数据,指定唯一[全局]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]]]}}}})

 

转载于:https://www.cnblogs.com/gscq073240/articles/6776418.html

你可能感兴趣的文章
开启线程方式
查看>>
xdebug
查看>>
Css之 间距初始化
查看>>
lsnrctl启动报错,Linux Error: 29: Illegal seek
查看>>
IDEA github
查看>>
linux 驱动学习笔记05--文件系统与设备文件系统
查看>>
unresolved external symbol __forceAtlDllManifest错误的解决
查看>>
Linux的.run文件简单制作
查看>>
ubuntu解压命令(转)
查看>>
C#获取获取北京时间多种方法
查看>>
动态语言的灵活性是把双刃剑 -- 以 Python 语言为例
查看>>
1. 字节序的转换
查看>>
ubuntu14.04LTS下ECLIPSE+JAVA搭建
查看>>
学习RxJS: 导入
查看>>
PowerDesigner大小写转换
查看>>
纯 CSS 利用 label + input 实现选项卡
查看>>
Ubuntu 上安装R
查看>>
How .Net code can call unmanaged code?
查看>>
Archlinux安装配置以及遇到的问题
查看>>
怎么写出好代码——坏味道
查看>>