mongodb常用命令
1、客户端连接服务 >mongo 2、查看数据库信息 >db.stats() 3、显示有哪些数据库 >show dbs; 4、选择使用哪个库 >use 数据库名 5、显示数据库中有哪些表 >show tables; 6、查看表信息 db.data_sys_log.stats() 7、数据库帮助 >db.help() 8、数据表帮助 >db.data_sys_log.help() 9、查看全表记录 >db.data_sys_log.find() 10、设置命令行查询数据,每页显示多少条 >DBQuery.shellBatchSize = 5 默认每页显示20条记录,当显示不下的情况下,可以用it迭代命令查询下一页数据。 可以通过DBQuery.shellBatchSize设置每页显示数据的大小。如:DBQuery.shellBatchSize = 5,这样每页就显示5条记录了 11、查询一条记录 >db.data_sys_log.findOne() 12、查询聚集中字段的不同记录 >db.data_sys_log.distinct("login_name") 13、查询聚集中login_name包含“王”关键字的记录 >db.data_sys_log.find({"login_name":/王/}) 14、查询聚集中login_name以“王”关键字开头的记录 >db.data_sys_log.find({"login_name":/^王/}) 15、查询聚集中login_name以“王”关键字结尾的记录 >db.data_sys_log.find({"login_name":/王$/}) 16、查询聚集中指定列。 1表示true :相当于select login_name,role_name from data_sys_log >db.data_sys_log.find({},{"login_name":1,"role_name":1}) 虽然只查login_name,role_name两列,默认会带出_id列 17、 查询聚集中排除指定列 >db.data_sys_log.find({},{"login_name":0,"role_name":0}) 18、查询聚集中指定列,且Age > 20 >db.data_sys_log.find({"Age":{"$gt":20}},{"login_name":0,"role_name":0}) 19、聚集中字段排序 >db.data_sys_log.find().sort({"login_name":1}) 升序 >db.data_sys_log.find().sort({"login_name":-1}) 降序 20、统计聚集中记录条数 >db.data_sys_log.find().count(); 21、统计聚集中符合条件的记录条数 >db.data_sys_log.find({"Age":{"$gt":20}).count(); 22、统计聚集中字段符合条件的记录条数 >db.data_sys_log.find({"login_name":{"$exists":true}}).count() 相当于:select count(login_name) from data_sys_log 23、查询聚集中前5条记录 >db.data_sys_log.find().limit(5) 24、查询聚集中第10条以后的记录,就是从11条开始 >db.data_sys_log.find().skip(10) 25、查询聚集中第10条记录以后的5条记录 >db.data_sys_log.find().skip(10).limit(5) 26、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 '%王%' 27、添加新记录 >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表,插入数据 28、修改记录 >db.data_sys_log.update({"login_name":"系统管理员"},{"$set":{"role_name":"管理员"}}) 注意:配置多条,只会修改一条 29、删除记录 >db.data_sys_log.remove({"role_name":"管理员"}) >db.data_sys_log.remove({"age":{$lt:20}}) age<20 $lt < $lte <= $gt > $gte >= $ne != 30、全部删除 >db.data_sys_log.remove() >db.data_sys_log.remove({}) 31、给表添加字段 >db.data_sys_log.update({},{$set:{source:null}},{multi:1}) 32、删除表字段 >db.data_sys_log.update({},{$unset:{'source':null}},false,true) 33、删除数据库 >db.dropDatabase(); #删除当前所在的数据库 34、删除表 > db.user.drop() #删除user表 35、关闭mongo服务 1)使用数据库命令关闭: >use admin >db.shutdownServer(); 2)使用mongod命令关闭 >mongod --shutdown -f ../mongo.conf 或 >mongod -f ../mongo.conf shutdown 3)使用kill命令 >ps -ef|grep mongo >kill pid >ps -ef|grep pmon 使用 kill -2 pid 或 kill -15 pid 不要使用kill -9 pid,因为如果MongoDB运行在没开户日志(--journal)的情况下,可能会造成数据损失。 36、建立复合索引 >db.test.ensureIndex({"age": 1,"no": 1,"name": 1 }) 37、查看索引命名空间 >db.tb_user.stats() 查看indexSizes的值 38、查看表数据大小:bytes >db.sysLog.dataSize(); 39、查看表分配大小,包括未使用的空间 >db.sysLog.storageSize(); 40、查看表数据大小,包括索引 >db.sysLog.totalSize(); 41、查看表索引大小 >db.sysLog.totalIndexSize();