文章目录
- 前言
- MongoDB 语法大全
- 01、mongodb 数据库链接
- 02、help查看命令提示
- 03、如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库
- 04、查询所有的数据库
- 05、查看当前数据库
- 05::01 查看当前数据库状态
- 05::02 查看当前数据库版本
- 05::03 查看当前数据库链接机器
- 06、插入
- 07、查询
- 07::01 查询
- 07::02 查询只返回一条数据
- 07::03 条件and查询
- 07::04 条件or查询
- 07::05 条件and 和 or 查询
- 07::06 条件操作符查询
- 07::07 模糊查询
- 07::08 $type 操作符查询
- 07::09 去重某列重复数据查询
- 07::10、in、not in 查询
- 07::11 指定字段返回
- 08、排序
- 08::01、升序
- 08::02、降序
- 09、查询前3条数据
- 10、查询3条以后数据
- 11、分页
- 12、查询当前集合总数
- 13、删除当前数据库
- 14、新建集合
- 15、删除集合
- 16、获取当前db指定名称的聚集集合
- 17、获取当前db所有聚集集合
- 18、查询当前集合数量
- 19、查询当前集合的数据空间大小
- 20、查询当前集合总大小
- 21、查询当前集合存储空间大小
- 22、集合重命名
- 23、查询当前集合所在数据库
- 24、插入语法
- 25、修改
- 25::01、修改集合中现有的文档
- 25::02、根据过滤器更新集合中的单个文档
- 25::03、更新与集合指定的筛选器匹配的所有文档
- 26、删除
- 27、for循环
- 28、新建普通,复合,唯一索引、查询,删除索引
- 29、添加用户
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
MongoDB 语法大全
01、mongodb 数据库链接
格式:mongodb:// [username:password@]host1[:port1][,host2[:port2],…[,hostN[:portN]]][/[database][?options]]
其中mongodb:// 是必须要有的。
username:password@ : -可选项 如果设置,链接数据库服务后会尝试登录该数据库
database :-可选项 如果指定username:password@ 链接验证指定数据库,不指定链接test数据库
options :链接选项,如果不使用database 前面需加上/,所有链接选项都是键值对name=value,多个选项时,以&或;分隔。
02、help查看命令提示
help();db.help();db.新建集合.help();例子:db.yangzhenyu.help();
03、如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库
use 数据库名;use yangzhenyu
04、查询所有的数据库
// 01 插入一条数据,否则show dbs;不显示db.yangzhenyu.insert({"name":"hello world!!!"});// 02 查询所有数据库show dbs;
05、查看当前数据库
db;或者 db.getName();
05::01 查看当前数据库状态
db.stats();
05::02 查看当前数据库版本
db.version();
05::03 查看当前数据库链接机器
db.getMongo();
06、插入
db.集合.insert();在mongoDB中,不需要主动创建集合,当你插入文档时会自动创建db.yangzhenyu.insert({"xxx":"yang","age":"27","yyy":"zhenyu"});
07、查询
07::01 查询
db.集合.find()db.yangzhenyu.find();
07::02 查询只返回一条数据
db.集合.findOne();db.yangzhenyu.findOne()
07::03 条件and查询
db.集合.find({"key1":"name1","key2","name2"});db.yangzhenyu.find({"xxx":"yang","age":"27"})
07::04 条件or查询
db.集合.find({ $or:[{"key1":"name1"},{"key2":"name2"} ]})db.yangzhenyu.find({$or:[{"name":"hello world!!!"}, {"age":"27"}]})
07::05 条件and 和 or 查询
db.集合.find({ "key0":"name0", $or:[{"key1":"name1"},{"key2":"name2"} ]})相当于: key0=name0 and (key1=name1 or key2=name2)db.yangzhenyu.find({"age":"27",$or:[{"name":"hello world!!!"}, {"age":"27"}]})
07::06 条件操作符查询
> | 大于 | $gt |
< | 小于 | $lt |
>= | 大于等于 | $gte |
<= | 小于等于 | $lte |
!= | 不等于 | $ne |
db.yangzhenyu.find({"age":{$gt:"26"}});
07::07 模糊查询
db.集合.find({"字段":/查询内容/});// 模糊查询-包含2db.yangzhenyu.find({"age":/2/});
// 模糊查询-以2开头db.yangzhenyu.find({"age":/^2/});
//模糊查询-小写kuldb.yangzhenyu.find({"yyy":/kul/});
//模糊查询-忽略大小写db.yangzhenyu.find({"yyy":/kul/i});
07::08 $type 操作符查询
$type操作符是基于BSON类型来检索集合中匹配的数据类型,并返回结果准备:创建集合typeTest,并插入两条数据db.typeTest.insert({"name":"yangzhenyu","age":"27"});db.typeTest.insert({"name":"yangzhenyu","age":27});查询:db.typeTest.find();
查询age字段为String的数据db.yzyTest.find({"age":{$type:'string'}});
查询age字段为int的数据db.typeTest.find({"age":{$type:'int'}});
07::09 去重某列重复数据查询
db.yangzhenyu.find();
age字段 去重查询:db.yangzhenyu.distinct("age");
07::10、in、not in 查询
in查询:db.集合.find({_id:{$in:["no1","no2"]}});not in 查询db.集合.find({_id:{$nin:["no1"]}});
07::11 指定字段返回
db.yzy.find({},{name:1});db.集合.find(query,projection)projection: 指定返回字段格式: {字段1:1,字段2:1}
08、排序
08::01、升序
查询集合.sort({字段名:1})db.yangzhenyu.find().sort({age:1})
08::02、降序
查询集合.sort({字段名:-1})db.yangzhenyu.find().sort({age:-1})
09、查询前3条数据
查询集合.limit(3);db.yangzhenyu.find().limit(3);
10、查询3条以后数据
查询集合.skip(3);db.yangzhenyu.find().skip(3);
11、分页
查询集合.limit(pagesize).skip(第几页的pagesize);//limit相当于pagesize skip相当于第几页的pagesize1-3db.yangzhenyu.find().limit(3).skip(0);
3-6db.yangzhenyu.find().limit(3).skip(3);
6-9db.yangzhenyu.find().limit(3).skip(6);
相当于mysql的limit函数
12、查询当前集合总数
查询集合.count();db.yangzhenyu.find().count();
13、删除当前数据库
db.dropDatabase();
14、新建集合
//创建固定集合db.createCollection("yzyTest",{capped:true,size:6142800,max:1000});capped - 如果为true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值,会自动覆盖最早的文档,当值为true时,必须指定size参数。size - 为固定集合指定一个最大值,即字节数。max - 指定固定集合中包含文档的最大数量。注:在插入文档时,mongoDB首先检查固定集合的size字段,然后检查max字段。//查看已有集合show collections;
//在mongoDB中,不需要主动创建,当你插入文档时会自动创建db.yzyTest1.insert({"name":"yangzhenyu","age":"27"})//查看已有集合show collections;
15、删除集合
db.集合.drop();db.yzyTest1.drop();//查看已有集合show collections;
16、获取当前db指定名称的聚集集合
db.getCollection("yzyTest");
17、获取当前db所有聚集集合
db.getCollectionNames();
18、查询当前集合数量
db.yzyTest.count();
19、查询当前集合的数据空间大小
db.yzyTest.dataSize();
20、查询当前集合总大小
db.yzyTest.totalSize();
21、查询当前集合存储空间大小
db.yzyTest.storageSize();
22、集合重命名
db.yzyTest.renameCollection("yzyRenameTest");
show collections;
23、查询当前集合所在数据库
db.yzyRenameTest.getDB();
24、插入语法
//插入一条数据db.集合.insertOne({_id:"01",name:"yang",age:"12"});//插入多条db.集合.insertMany([{_id:"02",name:"yang",age:"12"},{_id:"03",name:"yang",age:"12"}])
25、修改
25::01、修改集合中现有的文档
db.集合.update(<query>,<update>)query:update的查询条件,即where后的语句条件;update: 更新值,也可理解为sql update中set后面的语句;注:默认只更新找到的第一条;例子:db.yzy.find();
//只更新找到的第一条db.yzy.update({age:"12"},{$set:{age:"13"}});db.yzy.find();
25::02、根据过滤器更新集合中的单个文档
实例:
db.yzy.find();
db.yzy.updateOne({age:"12"},{$set:{age:"13"}});db.yzy.find();
25::03、更新与集合指定的筛选器匹配的所有文档
db.yzy.find();
db.yzy.updateMany({age:"12"},{$set:{age:"13"}});db.yzy.find();
26、删除
从集合中删除单个文档db.yzy.deleteOne({age:"13"})
从集合中删除与筛选器匹配的所有文档db.yzy.deleteMany({age:"13"})
27、for循环
db.yzy.find().forEach(function(item){if(item.age >= 12){ db.yzy.updateOne({age:item.age},{$set:{age:"13"}});}})
28、新建普通,复合,唯一索引、查询,删除索引
//查询当前db所有聚集索引db.printCollectionStats();//创建普通索引//db.集合.ensureIndex({字段名:1}) 1表示升序、-1表示降序 升序、降序对单索引没有影响,对复合索引有影响db.yzy.ensureIndex({"name":1});//创建复合索引//db.集合.ensureIndex({字段1名:1,字段2名:1})db.yzy.ensureIndex({"name":1,"age":1});//创建唯一索引//db.集合.ensureIndex({字段名:1}) 1表示升序、-1表示降序db.yzy.ensureIndex({"age":1},{"unique":true});//删除索引//db.集合.dropIndex({字段名:1});db.yzy.dropIndex({"name":1});//查询当前集合所有索引//db.集合.getIndexes()db.yzy.getIndexes();
29、添加用户
db.createUser( {user: "sa",pwd: "sa",roles: [ { role: "root", db: "admin" } ]});