MongoDB基本增删改查操作命令
MongoDB基本增删改查操作
学习裙:244284555,暗号:MongoDB
1选择或创建数据库
使⽤use 数据库名称即可选择数据库,如果该数据库不存在会⾃动创建
2插⼊⽂档
⽂档相当于关系数据库中的记录
⾸先我们定义⼀个⽂档变量,格式为变量名称={}; 例如:
接下来就是将这个变量存⼊MongoDB
格式为:
db.集合名称.save(变量);
这⾥的集合就相当于关系数据库中的表。例如:
这样就在student集合中存⼊⽂档。如果这个student集合不存在,就会⾃动创建。
当然,你也可以不⽤定义变量,直接把变量值放⼊save⽅法中也是可以地。
为了⽅便后期测试,我们再多加点数据
db.student.save({name:"沙和尚",sex:"男",age:25,address:"流沙河路11号"});
db.student.save({name:"唐僧",sex:"男",age:35,address:"东⼟⼤唐"});
db.student.save({name:"⽩⾻精",sex:"⼥",age:18,address:"⽩⾻洞"});
db.student.save({name:"⽩龙马",sex:"男",age:20,address:"西海"});
db.student.save({name:"哪吒",sex:"男",age:15,address:"莲花湾⼩区"});
3查询集合
我们要查询某集合的所有⽂档,使⽤find()⽅法。语法格式为:
db.集合名称.find();
例如,我们要查询student集合中的所有⽂档:
这⾥你会发现每条⽂档会有⼀个叫_id的字段,这个相当于我们原来关系数据库中表的主键,当你在插⼊⽂档记录时没有指定该字段,MongDB会⾃动创建,其类型是ObjectID类型。
如果我们在插⼊⽂档记录时指定该字段也可以,其类型可以使ObjectID类型,也可以是MongoDB⽀持的任意类型. 例如:
我们再次查询
如果我想按⼀定条件来查询,⽐如我想查询性别为“⼥”的记录,怎么办?很简单!
只要在find()中添加参数即可,参数也是json格式,如下:
为了避免游标可能带来的开销,MongoDB还提供了⼀个叫findOne()的⽅法,⽤来返回结果集的第⼀条记录。
性别为男的有很多条,这⾥只返回了第⼀条记录。
当我们需要返回查询结果的前⼏条记录时,可以使⽤limit⽅法,例如:
4修改⽂档
我们要想修改记录,可以使⽤update⽅法 .
例如:我向将姓名为孙悟空的学员⽂档中的age字段值改为31,执⾏下列语句,看会发⽣什么?
再次查询:
哦,悲剧了~~ 原来的孙悟空的⽂档只剩下_id 和age两个字段了。
那如何保留其它字段值呢?
我们需要使⽤MongoDB提供的修改器$set 来实现,请看下列代码。
再次查询,会发现“猪⼋戒”⽂档中原有的其它字段还保留下来,⽽更新age字段也成功了。
5删除⽂档
删除⽂档使⽤remove()⽅法,格式为:
db.集合名称.remove( 条件 );
请慎⽤remove({}), 它会⼀条不剩地把你的集合所有⽂档删的⼲⼲净净。
我们现在演⽰⼀下,删除name为“哪吒”的记录:
再次查询,会发现哪吒的⽂档不见了。
4.⾼级查询
4.1模糊查询
MongoDB的模糊查询是通过正则表达式的⽅式实现的。格式为:
/模糊查询字符串/
例如,我要查询student集合中address字段中含有“洞”的所有⽂档,代码如下:基本的增删改查语句
如果要查询name字段中以“⽩”开头的,代码如下:
4.2 Null值处理
如果我们想出集合中某字段值为空的⽂档,如何查询呢?其实和我们之前的条件查询是⼀样的,条件值写为null就可以了。
我们现在集合中的⽂档都是没有空值的,为了⽅便测试,现在我们将数据做些修改:
将“唐僧”的address改为空
再次查询:
我们会发现不仅会显⽰“唐僧”这条⽂档,之前因为修改导致address字段丢失的那条记录也出现了。也就是说,这种查询会查询出该字段为null的以及不存在该字段的⽂档记录。
4.3⼤于⼩于
<, <=, >, >= 这个操作符也是很常⽤的,格式如下
⽰例:查询年龄⼤于等于20岁的学员记录
4.4不等于
不等于使⽤$ne操作符。
⽰例:查询sex字段不为“男”的⽂档
4.5判断字段是否存在
判断字段是否存在使⽤$exists操作符。
⽰例:查询所有含有address字符的⽂档。
⽰例:查询所有不含有address字符的⽂档。
4.6包含与不包含
包含使⽤$in操作符。
⽰例:查询student集合中age字段包含20,25,30的⽂档
⽰例:查询student集合中age字段不包含20,25,30的⽂档
4.7统计记录条数
统计记录条件使⽤count()⽅法。
⽰例:查询student集合的⽂档条数。
⽰例:查询student集合中age字段⼩于等于20的⽂档条数。
4.8 条件连接--并且
我们如果需要查询同时满⾜两个以上条件,需要使⽤$and操作符将条件进⾏关联。(相当于SQL的and)格式为:$and:[ { },{ },{ } ]
⽰例:查询student集合中age⼤于等于20 并且age⼩于30的⽂档
4.9 条件连接--或者
如果两个以上条件之间是或者的关系,我们使⽤$or操作符进⾏关联,与前⾯$and的使⽤⽅式相同
格式为:$or:[ { },{ },{ } ]
⽰例:查询student集合中sex为⼥,或者年龄⼩于20的⽂档记录
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论