- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MongoDB
在win上!
安装:
解压,拷贝到指定目录
建立数据目录及日志目录
启动服务器:
启动客户端:
条件语法
关系运算符$lt,$gt,$nt,$lte,$gte,$eq
更新,查询,修改,都需要使用条件作为参数
条件表达式,关系运算除了相等之外,如果需要其他的关系运算则需要使用下面的语法:
{“field“:{“$eq”: “杨过”}}
$eq, 关系运算符,(关系运算指令)。还有:
$lt,小于
$lte,小于等于
$gt,大于,
$gte,大于等于
$nt,不等于
范围条件:$in, $nin
db.student.find(
{php: {$nin:[66, 82, 89]}},
{_id: false}
)
取模运算条件:$mod
db.student.find(
{mongodb: {$mod: [10, 0]}},
{_id: false}
);
逻辑运算:$not,$and, $or
$and:
如果使用$and逻辑运算完成以上的逻辑关系,结果如下:
$or(tip)
$not
Null查询
注意,mongodb在处理null时,如果某个文档,没有该属性(字段)也会被匹配上。
如果判断属性是否存在则需要使用下的语法:
$exists
语法总结:
条件为json语法
每个属性就是一个条件。
常规的:属性名为字段,而属性值为条件表达式的json写法。
是否的运算,在指令后使用true|false
值比较运算:在指令后使用数据即可
如果一个执行涉及到多个运算数,则使用数组进行表示。
数组型:$all,$size
查询其中的某个元素:直接使用标量的相等即可
查询针对多个元素:使用$all指令进行查询
如果不使用$all而直接使用数组值匹配,则只能找到与之完全一致的元素。
对数组元素个数进行查询
对象型,内嵌文档(内联文档)
直接使用.访问对象的属性即可:
更新修改器
在更新时,可以针对于某个属性进行更新。默认的行为是,将当前文档全部替换掉!
以上就是典型的非关系数据的更新。一个文档一个json就是一个基本的数据单位。
如果采用关系型的思维,应该可以修改某个文档的属性才可以。(mongodb是介于关系和非关系之间的体现)
需要通过利用 更新修改器完成:
还存在:
$unset: 删除某个属性
递增:$inc
数组内容修改器:$push,$addToSet,$pushAll
$push,不论数组中是否存在该元素,都会添加成功
$addToSet,当集合中不存在该元素时,才会添加。
$pushAll,支持一次性插入多个元素
移除数组元素:
Pop,移除末端元素,和push相对,是一组栈
指定元素进行移除$pull,$pullAll
UPSert
Update+insert,操作也是。先执行更新操作,如果更新条件没有匹配上任何文档,则执行插入操作。
Update()的第三个参数表示,是否执行UpSert工作,默认为false。
更新多条
默认的update,仅仅会更新匹配条件的第一条记录。除非使用第四个参数:
使用true表示多条同时更新:
查询
Find().Count()
Find.sort()
1 升序asc
-1 降序desc
Find.skip()
Find.limit()
PHP程序操作Mongodb
PHP程序作为MongoDB的客户端出现!
加载mongo.dll扩展即可:
找到对应的dll:
Php.ini:
Apacherestart
使用该扩展提供的类(方法)完成对mongo的操作:
(mongodb无状态)
提供的OOP语法:(可以在PHP的官方手册中找到其内容)
共涉及4个类:
最常用的就是mongoCollection:
查询为例,展示php操作mongo:
先通过Mongo类,完成连接mongod服务器。
再通过其 数据库属性-集合属性,定位某个集合
再完成该集合的操作。(无状态)
Mongo客户端使用的数据结构,都是json对象,如果在PHP代码中,转换成相应的数组即可:
支持索引
支持三种类型索引:
普通索引,唯一索引,空间索引。
空间索引:可以利用X,Y一组坐标做快速检索!
如果需要对属性 gis做空间位置查询,则可以创建空间索引:
创建所以的语法如下:
Db.集合.ensureIndex(索引字段及类型,索引的选项)
一旦建立好了空间索引,就可以使用空间索引提供的特殊操作,完成位置的检索了:
计算距离:
计算距离某个点最进的点
$near指令
计算某个范围内的坐标(支持矩形,圆形,多边形):
$within
取决于不同的范围图形。
分片存储数据
复制,读写分离,负载均衡(amoeba for mongodb)
认证
Why mongodb?why mysql?
M
原创力文档


文档评论(0)