1、启动数据库>mongod --dbpath (自定义文件夹路径) --port 端口号
//mongodb默认端口号为27017,可自定义其他端口2、连接数据库>mongo --port 端口号
3、查看数据库信息>db.stats()4、选择使用哪个数据库>use数据库名//该指令是选择指定数据库,若没有则自动创建5、显示有哪些数据库>show dbs;6、显示数据库中有哪些表>show tables;7、查看表信息>db.data_sys_log.stats()8、数据库帮助>db.help()9、数据表帮助>db.data_sys_log.help()10、查看全表记录>db.data_sys_log.find()11、设置命令行查询数据,每页显示多少条>DBQuery.shellBatchSize = 5
/*默认每页显示20条记录,当显示不下的情况下,可以用 it迭代命令查询下一页数据
可以通过DBQuery.shellBatchSize设置每页显示数据的大小。如:
DBQuery.shellBatchSize = 5,这样每页就显示5条记录了*/
12、查询一条记录>db.data_sys_log.findOne()13、查询聚集中字段的不同记录>db.data_sys_Log.distinct("login_name")14、查询聚集中login_name包含“李”关键字的记录>db.data.sys_log.find({"login_name":/李/})15、查询聚集中login_name以“李”关键字开头的记录>db.data.sys_log.find({"login_name":/^李/})16、查询聚集中login_name以“李”关键字结尾的记录>db.data.sys_log.find({"login_name":/李$/})17、查询聚集中指定列
1表示true:相当于select logoin_name,role_namefromdata_sys_log>db.data_sys_log.find({},{"login_name":1,"role_name":1})
虽然只查login_name,role_name两列,默认会带出_id列18、查询聚集中排除指定列>db.data_sys_log.find({},{"login_name":0,"role_name":0})19、查询聚集中指定列,且 Age > 20
>db.data_sys_log.find({"Age":{"$gt":20}},{"login_name":0,"role_name":0})20、聚集中字段排序>db.data_sys_log.find().sort({"login_name":1}) 升序>db.data_sys_log.find().sort({"login_name":-1}) 降序21、统计聚集中记录条数>db.data_sys_log.find().count();22、统计聚集中符合条件的记录条数>db.data_sys_log.find({"Age":{"$gt":20}}).count()23、统计聚集中字段符合条件的记录条数>db.data_sys_log.find({"login_name":{"$exists":true}}).count()
相当于:select count(login_name) fromdata_sys_log24、查询聚集中前5条记录>db.data_sys_log.find().limit(5)25、查询聚集中第10条记录以后的5条记录>db.data_sys_log.find().skip(10).limit(5)26、查询聚集中第10条以后的记录,即从第11条开始>db.data_sys_log.find().skip(10)27、OR查询>db.data_sys_log.find({"$or":[{"login_name":/王/},{"role_name":/王/}]},{"login_name":true,"role_name":true})
相当于:select login_name,role_name from data_sys_log where login_name like '%王%' or role_name like '%王%'
28、添加新记录>db.data_sys_log.insert({"_class":"com.uws.base.model.SysLogMongo","login_name":"测试","role_name":"测试角色","opt_content":"[类名]:com.uws.base.controller.LoginController,[方法]:logout,[参数]:","create_time":"2019-05-21 10:59:10"})
注意:如果不选择库执行,即不use hz_studentroll;
则直接在test库中创建data_sys_log表,插入数据29、修改记录>db.data_sys_log.update({"login_name":"系统管理员"},{"$set":{"role_name":"管理员"}})
注意:配置多条,只会修改一条30、删除记录>db.data_sys_log.remove({"role_name":"管理员"})>db.data_sys_log.remove({"age":{$lt:20}}) age<20$lt$gte>=$ne!=
31、全部删除>db.data_sys_log.remove()>db.data_sys_log.remove({})32、给表添加字段>db.data_sys_log.update({},{$set:{source:null}},{multi:1})33、删除表字段>db.data_sys_log.update({},{$unset:{'source':null}},false,true)34、删除数据库>db.dropDatabase(); 删除当前所在的数据库35、删除表>db.user.drop() 删除user表36、关闭mongo服务1)使用数据库命令关闭:>useadmin>db.shutdownServer()2)使用mongod命令关闭>mongod --shutdoun -f ../mongo.conf
或者>mongod -f ../monog.conf shutdown
3)使用kill命令>ps -ef|grep mongo>killpid>ps -ef|grep pmon
使用kill -2 pid 或 kill -15pid
不要使用kill-9 pid,因为如果MongoDB运行在没开户日志(--journal)的情况下,可能会造成数据损失。
37、建立复合索引>db.test.ensureIndex({"age": 1,"no": 1,"name": 1})38、查看索引命名空间>db.tb_user.stats() 查看indexSizes的值39、查看表数据大小:bytes
db.sysLog.dataSize()40、查看表分配大小,包括未使用的空间>db.sysLog.totalSize()41、查看表索引大小>db.sysLog.totalIndexSize();// 注:前面的 data_sys_log 表示集合名(和mysql中表类似)