梳理的关于mongodb的基础使用命令:
# 一.基础命令:
------------------
------------------
1.#使用use 数据库名称即可选择数据库,如果该数据库不存在会自动创建
use mongolab999
2.插入数据【插入数据中的insert,与save注意点】
db.student.insert({name:"沙和尚",sex:"男",age:25,address:"流沙河路11号"});
db.student.insert({name:"唐僧",sex:"男",age:35,address:"东土大唐"});
db.student.insert({name:"白骨精",sex:"女",age:18,address:"白骨洞"});
db.student.insert({name:"白龙马",sex:"男",age:20,address:"西海"});
db.student.insert({name:"哪吒",sex:"男",age:15,address:"莲花湾小区"});
db.student.save({name:"白骨男1",sex:"男",age:15,address:"白骨洞"});
db.student.save({name:"白骨女2",sex:"女",age:15,address:"白骨山顶"});
db.student.save({name:"白骨骨头",sex:"男",age:15,address:"白骨源"});
db.student.save({name:"孙悟空",sex:"男",age:110,address:"花果山"});
db.student.save({name:"牛魔王",sex:"男",age:100,address:"牛魔洞"});
db.student.save({name:"傻白添",sex:"男",age:100,address:"牛魔洞"});
db.student.save({name:"大白鹰王",sex:"男",age:100,address:"牛魔洞"});
db.student.save({name:"白狼",sex:"男",age:100,address:null});
db.student.save({name:"灰狼",sex:"男",age:100,address:null});
db.student.save({name:"二郎神",sex:"男",age:100});
db.student.save({name:"龙王",sex:"男",age:100});
db.student.save({name:"印度狼王",sex:"女",age:12,address:"白骨山顶"});
db.student.save({name:"边境小狼",sex:"男",age:11,address:"白骨源"});
db.student.save({name:"西天大圣",sex:"女",age:13,address:"白骨山顶"});
db.student.save({name:"蟠桃小怪",sex:"男",age:14,address:"白骨源"});
3.1# 查询插入的数据:
db.student.find({});
# 我想查询性别为“女”的记录
db.student.find({sex:"女"})
#MongoDB还提供了一个叫findOne()的方法,用来返回结果集的第一条记录
db.student.findOne({sex:"女"})
# 需要返回查询结果的前几条记录时,可以使用limit方法
db.student.find({}).limit(3);
4.修改数据update
# 需要使用MongoDB提供的修改器$set 来实现,否则会导致数据的不完整性,一定注意这个地方:
db.student.update({name:"白龙马"},{$set:{age:99}})
5.删除文档[删除记录信息--->行记录信息]db.student.remove(条件)
db.student.remove({name:"孙悟空"})
db.student.find({});
------------------
------------------
# 二高级查询命令:
#6.1模糊查询
MongoDB的模糊查询是通过正则表达式的方式实现的。格式为:
/模糊查询字符串/
例如:
#6.2 查询student集合中address字段中含有“洞”的所有文档
db.student.find({address:/洞/})
db.student.find({}).limit(3);
#6.3查询name字段中以“白”开头的,代码如下
db.student.find({name:/白/}) # 验证任何位置包含‘白’,与下面的对比测试
db.student.find({name:/^白/})
# 6.4找出集合中某字段值为空的文档null,字段为null的以及不存在该字段的文档记录都是可以查询出来的
db.student.find({address:null}); # 可以查询出来地址为null的或者没有address这个字段信息的记录
#6.5 条件查询[对应关系]
-------
< $lt
<= $lte
> $gt
>= $gte
!== $ne
---------
db.student.find({age:{$gte:100}})
db.student.find({age:{$gt:100}})
db.student.find({age:{$ne:100}})
#6.6判断字段是否存在,使用$exists操作符
db.student.find({}).limit(3);
db.student.find({})
# 查询所有含有address字符的文档[所有有address这个字段信息的记录]
db.student.find({address:{$exists:true}})
# 查询所有含有address字符的文档[没有address这个字段信息的记录]
db.student.find({address:{$exists:false}})
#6.7包含与不包含$in $nin
db.student.find({})
db.student.find({age:{$in:[11,12,13,14]}}) #学生年龄在11,12,13,14,中的一个的记录信息
db.student.find({age:{$nin:[11,12,13,14]}}) #学生年龄不在11,12,13,14,中的一个的记录信息
# 6.8统计方法的使用计记录条数,统计记录条件使用count()方法
db.student.count()
db.student.find({})
# 6.9查询student集合中age字段小于等于20的文档条数
db.student.count({age:{$lte:20}})
#7如果需要查询同时满足两个以上条件,需要使用$and操作符将条件进行关联。(相当于SQL的and)$and:[ { },{ },{ } ]
#示例:查询student集合中sex为女,同时年龄小于20的文档记录;
db.student.find({$and:[{sex:'女'},{age:{$lt:20}}]});
#7.1如果两个以上条件之间是或者的关系,我们使用$or操作符进行关联,与前面$and的使用方式相同
#格式为:$or:[ { },{ },{ } ]
#示例:查询student集合中sex为女,或者年龄小于20的文档记录
db.student.find({$or:[{sex:'女'},{age:{$lt:20}}]});
db.student.find({})
--------------------------------------------------------------------
-----------------------------其他类别数据的梳理:--------------------------------------------
-----------------------------其他类别数据的梳理:--------------------------------------------
--------------------------------------------------------------------
一.增加数据
----------------------
# 查询所有数据
db.clab.find({});
# 插入数据的三种方式;
db.clab.insert({name:"zhangsan",age:18,sex:'男',grade:'高三',stu_id:'001'})
db.clab.insert({name:"lisi",age:18,sex:'女',grade:'高三',stu_id:'002'})
# 插入数据-1One
db.clab.insertOne({name:"xiaowuzi",age:19,sex:'女',grade:'高三',stu_id:'003'})
# 插入数据---insertMany
db.clab.insertMany([
{name:"xiaohua",age:18,sex:'男',grade:'高三',stu_id:'004'},
{name:"xiaomei",age:18,sex:'男',grade:'高三',stu_id:'005'}
])
二.检索数据
------------------------------------------
------------------------------------------
db.clab.find({age:21}) #年龄等于21的数据
db.clab.find({age:21,address:"beijing"}) #年龄等于21并且地址是beijing的数据
db.clab.find({age:{$gte:25}}) # 年龄大于25的数据
db.clab.find({age:{$in:[21,30]}}) #年龄在21,30的数据
db.clab.find({$or:[{age:21},{age:30}]}) #年龄在21,30的数据
三.更新数据
------------------------------------------
-------------------------------------------------------
db.clab.update({name:'zhangsan'},{$set:{age:100}},{multi:true})
# 更新名字是zhangsan的设置他的年龄为100,如果有多条,就是都是修改
--------------------------------------------------------------------
四.删除数据
db.clab.remove({age:{$lte:22}}) #删除小于age小于22岁的数据
db.clab.remove({age:{$lt:22}})
db.clab.remove({name:"zhangsan"}) #删除name是“zhangsan”的数据