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();