################### MongoDB中的配置文件##########
1.配置文件路径
/ $路径(安装目录)/bin/mongodb.conf
2.配置文件内容
port = 27017#端口号
dbpath = / soft / mongodb / mongodb / db#数据库文件存放目录
logpath = / soft / mongodb / mongodb / logs / mongodb.log#数据库日志存放目录及文件
logappend = true #是否启用追加的方式添加日志信息
fork = true#是否不以守护进程的启用程序,即不在后台运行
maxConns = 100#最大同时连接数
auth = true#是否开启认证(auth = true等同于noauth = false )
journal = true#每次写入会记录一条操作日志(通过journal可以重新构造出写入的数据)。
storageEngine = wiredTiger#即使宕机,启动时wiredtiger会先将数据恢复到最近一次的检查点,然后重放后续的期刊日志来恢复。
存储引擎有mmapv1,wiretiger,mongorocks
bind_ip = 0.0.0.0#绑定外网IP
###################基础操作###################
1.monogodb启动
cd mongodb安装目录/ bin
./mongod -f ./mongodb.conf
2.mongodb关闭
./mongod -f ./mongodb.conf-shutdown
3.初装mongodb时,未开启认证方式,但需要认证互用的,以下面的方式启动数据库
./mongodb --datapath = / $ path(安装路径)/ db --logpath = / $ path(安装路径)/logs/mongodb.log --fork --auth
注:
1.db和logs文件夹是自己创建的,根据自己创建的文件夹指定路径
2.mongodb.log日志文件可以自行指定名称(建议使用mongodb.log)
4.创建管理员用户
db.createUser({user:'你的管理员账号',pwd:'你的密码',角色:[{role:'userAdminAnyDatabase',db:'admin'}]});
5.创建普通用户
db.createUser({user:“stjcdb”,pwd:“123456”,角色:[{role:“readWrite”,db:“stjc”}]})
#####################操作数据库#################
1.管理员用户登陆
切换管理员用户的DB
使用admin
管理员认证
db.auth(“你的账号”,“你的密码”);
---------->数据库已经启动
2.查询集合
1)切换数据库
使用stjc
2)获取集合
显示集合
3.查看当前库下的所有用户
show users;
4.查看数据库的用户
使用admin;
db.system.users.find(); -----> db.system.users.find()。pretty(); //格式化数据
#####################数据操作####################
1.使用业务数据库
切换数据库
使用stjc
数据库认证
db.auth(“stjcdb”,“123456”);
2.数据查询
全部查询
db.stjcInfoBase.find(); //查询全部
只取第一个
db.stjcInfoBase.findOne();
条件查询
db.stjcInfoBase.find({ “stjcName”: “新测试2”} );
3.添加索引
db.stjcInfoBase.ensureIndex({ “createrTeacherId”:1});
1:表示索引创建的方向;可以取值为1或-1;
createrTeacherId:需要创建索引的字段;
4.删除数据
db.stjcInfoBase.delete({“stjcName”:“新测试2”});
5.数据添加
db.stjcInfoBase.save({ “名称”: “刘文涛”, “PD”: “123456”});
6.修改数据
db.stjcInfoBase.update({ “名称”: “刘文涛”},{$设置:{ “测试”: “123456”}});
####################其他操作########################
1.查看当前表这张可以进行的操作
db.stjcInfoBase.help();
#################合合查询##########################
1.Aggregate关键字可以对mongodb进行聚合查询
db.studentInfoBase.aggregate([## studentInfoBase左表(主表)
{
$ lookup:{## $ lookup循环
来自:“stjcInfoBase”,##来自右边所跟的表明相当于右表(ORM数据库被关联的表(inner join stjcInfoBase))
localField:“stjcId”,##外键(studentInfoBase)
foreignField:“_ id”,##主键(stjcInfoBase)
as:“stjcInfoBase”##关联后数据的别名
}
,{
$ match:{##匹配条件关键字
“studentUUID”:“a06484c26a514b3bb741”,##条件1(大于或小于可以时值可以通过{$ ge:10} {$ le:10}来实现)
“stjcInfoBase.state”##条件2(被关联表中的条件可以通过别名。字段来设置)
}
},{
$ project:{##设置结果集是否显示字段
“stjcInfoBase”:1,## 1为显示0为不显示
“_id”:0
}
},{
$ limit:10 ##分页:每次显示10条
},{
$ skip:0 ##分页:从第0条开始(数据管道跳过0条)
},{
$ sort:{##排序
“stjcInfoBase。 createTime”:-1 ##设置排序字段1升序-1降序
}
}
])