梳理的关于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”的数据