MongoDB

MongoDB是一个基于分布式文件存储的数据库,MongoDB是一个介于关系数据库和非关系数据库之间的产品。
支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。

MongoDB中的记录是一个文档,它是由字段和值对组成的数据结构。多个键及其关联的值有序地放在一起就构成了文档。
MongoDB文档类似于JSON对象。
{“greeting”:“hello,world”}这个文档只有一个键“greeting”,对应的值为“hello,world”。
多数情况下,文档比这个更复杂,它包含多个键/值对。
例如:{“greeting”:“hello,world”,“foo”: 3},文档中的键/值对是有序的,下面的文档与上面的文档是完全不同的两个文档{“foo”: 3 ,“greeting”:“hello,world”}。

文档中的值不仅可以是双引号中的字符串,也可以是其他的数据类型,例如,整型、布尔型等,也可以是另外一个文档,即文档可以嵌套。但文档中的键类型只能是字符串。

value:可以包含如下类型,基本类型,例如string,int,float,timestamp,binary等类型、一个文档、数组类型(一个数组中的数据类型可以是多种多样的。)

集合就是一组文档,类似于关系数据库中的表。集合是无模式的,集合中的文档可以是各式各样的。
例如,{“hello,word”:“Mike”}{“foo”: 3},它们的键不同,值的类型也不同,但是它们可以存放在同一个集合中,也就是不同模式的文档都可以放在同一个集合中。

MongoDB中多个文档组成集合,多个集合组成数据库。

下面是操作指令,还是那个思想,这种东西不用记,看看就行:
db.集合名.insert(JSON数据)     
mongodb会给每条数据增加一个全球唯一的_id键

db.集合名.find(条件[,查询的列])
条件的写法:
查询所有的数据	     {}或者不写
查询age=6的数据	     {age:6}
既要age=6又要性别={age:6, sex:‘男’}

查询的列(可选参数)的写法:
查询全部列(字段)	     不写
只显示age列(字段)	    {age:1}
除了age列(字段)都显示	{age:0}

其他语法
db.集合名.find({
	键:{运算符:值}
})

运算符作用:$gt大于,$gte大于等于,$lt小于,$lte小于等于,$ne不等于,$in in,$nin not in。

db.集合名.update(条件,新数据[是否新增,是否修改多条,])。

新数据此数据需要使用修改器,如果不使用,那么会将新数据替换原来的数据。

db.集合名.update(条件,{修改器:{键:值}}[是否新增,是否修改多条,])

修改器作用:inc递增(age:2变为age:3),rename重命名列,set修改列值,unset删除列。

是否新增,指条件匹配不到数据则插入(true是插入,false否不插入默认)。

db.c3.update({uname:"zs30"},{$set:{age:30}},true)
db.c3.update({uname:"zs2"},{$set:{age:30}},false,true)

db.集合名.remove(条件[,是否删除一条]),true:是(删除的数据为第一条),false:否。

查询时我们可以使用正则表达式,比如查询所有key为x,value以hello开始的文档且不区分大小写:
db.sang_collec.find({x:/^(hello)(.[a-zA-Z0-9])+/i})

索引创建:默认情况下,集合中的_id字段就是索引,现在我的集合中有10000个文档,我想要查询x为1的文档,我的查询操作如下:
db.sang_collect.find({x:1}) 这种查询默认情况下会做全表扫描。
db.sang_collect.ensureIndex({x:1}) 1表示升序,-1表示降序。

MongoDB之副本集配置,MongoDB主从复制。
主从复制是MongoDB最早使用的复制方式,可以支持任意数量的从节点服务器。

主节点记录在其上执行的所有写操作,从节点定期轮询主节点获取这些操作,然后再对自己的数据副本执行这些操作。
由于和主节点执行了相同的操作,从节点就能保持与主节点的数据同步。

主节点的操作记录称为oplog(operation log),oplog中的每个文档都代表主节点上执行的一个操作。
在新版本的MongoDB中已经不再支持使用主从复制这种复制方式了,取而代之的是使用副本集复制方式。

MongoDB副本集和主从复制最大的区别就是在副本集中没有固定的主节点;整个副本集会选出一个节点作为主节”,当其挂掉后,再在剩下的从节点中选举一个节点成为新的主节点,在副本集中总有一个主节点和一或多个备份节点。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成长是自己的事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值