上路抗压,野爹常来

MongoDB简单记录

MongoDB命令

mongoDB执行js文件

mongo --verbose localhost:27017/指定数据库 js文件

mongoDB启动

mongod.exe --dbpath d:\mongodb\data

mongoDB查询所有数

#只显示有数据的库
show dbs;

切换创建数据库

use user;

删除当前使用的数据库

db.dropDatabase();

显示当前db状态

db.stats();

当前db版本

db.version();

查看当前db连接的服务器地址

db.getMongo();

创建集合

# 集合名称,可选参数,指定内存大小和索引
db.createCollection('runoob',{size:20,capped:5,max:100});

删除集合

#db.集合名.drop();
db.runoob.drop();

新建用户

#用户名 密码 权限 db库
db.createUser({user:"root",pwd:"root",roles:[{role:"readWrite",db:"demo"}]});

数据库认证、安全模式(登录)

db.auth('root','root');

查看所有用户

db.users;

删除用户

db.removeUser('root');

CURD操作

#<----------新增---------->
#插入一条   类似于   insert into demo(title,desc) value("测试","测试");
db.demo.insert({title:"测试",desc:"测试"});
db.demo.insertOne({title:"测试",desc:"测试"});
#插入多条   类似于   insert into demo(title,desc) values("测试","测试"),("测试","测试"),...
db.demo.insertMany([{title:"测试",desc:"测试"},{title:"测试",desc:"测试"}]);

#<----------修改---------->
#类似于  update demo set title="修改1",desc="修改1" where title="测试";
db.demo.update({title:"测试"},{$set:{title:"修改1",desc:"修改1"}});

#<----------删除---------->
#类似于   delete from demo where title="测试2";
db.demo.remove({title:"测试2"});
#删除全部
db.demo.deleteMany({});
#删除title="修改1"的所有文档
db.demo.deleteMany({title:"修改1"});
#删除title="修改1"的一个文档
db.demo.deleteOne({title:"修改1"});

#<----------查询---------->
#<---查询所有记录--->
#类似于   select * from demo;
db.demo.find();

#<---查询某一列,且去重--->
#类似于   select distict title from demo;
db.demo.distinct("title");

#条件查询
#<---查询所有记录--->
#类似于   select * from demo where title="修改1";
db.demo.find({title:"修改1"});

#大于   $gt
db.demo.find({age:{$gt:18}});
#大于等于   $gte
db.demo.find({age:{$gte:18}});
#小于   $lt
db.demo.find({age:{$lt:20}});
#小于等于   $lte
db.demo.find({age:{$lte:20}});

#<---模糊查询--->
#类似于   select * from demo where title like "%测试%";
db.demo.find({title:/修改/});

#<---查询指定列数据--->
#类似于   select title,age from demo;
db.demo.find({},{title:1,age:1});

#<---条件查询指定列--->
#类似于   select title,age from demo where age = 18;
db.demo.find({age:18},{title:1,age:1});

#<---排序--->
db.demo.find().sort({age:1});#升序   类似于   select * from demo order by age asc;
db.demo.find().sort({age:-1});#降序   类似于   select * from demo order by age desc;

#<---limit查询--->
#类似于   select * from demo limit 5;
db.demo.find().limit(5);

#<---查询第几条之后的数据--->
db.demo.find().skip(3);

#<---分页查询--->
#类似于   select * from demo limit 4,2;
db.demo.find().limit(2).skip(4);

#<---or查询--->
#类似于   select * from demo where title="测试" or age=18;
db.demo.find({$or:[{title:"测试"},{age:18}]});

#<---查询第一条数据--->
#类似于   select * from demo limit 1;
db.demo.findOne();
db.demo.find().limit(1);

#<---统计查询--->
#类似于   select count() from demo where age > 18;
db.demo.count();
db.demo.count({age:{$gt:18}});

#<---分组查询--->
#单字段分组查询    类似于    select * from demo group by taskId;
db.demo.aggregate([{'$group':{'_id':'$taskId',count:{$sum:1}}}]);
#多字段分组查询    类似于    select * from demo group by taskId,date;
db.demo.aggregate([{'$group':{'_id':{'taskId':'$taskId','date':'$date'},count:{$sum:1}}}]);
#带条件分组查询    类似于    selelct * from demo where date=20210630 group by taskId,date;
db.demo.aggregate([{'$match':[{'date':20210630}]},{'$group':{'_id':{'taskId':'$taskId','date':'$date'},count:{$sum:1}}}]);

索引

#查看当前集合中的所有索引
db.demo.getIndexes();

#创建索引
db.demo.ensureIndex({title:1});
#复合索引
db.demo.ensureIndex({title:1,age:1});

#查看索引大小
db.demo.totalIndexSize();

#删除指定索引
db.demo.dropIndex("title_1");
#删除所有索引
db.demo.dropIndexes();
posted @ 2021-06-11 17:29  上路抗压  阅读(50)  评论(0编辑  收藏  举报