mongo server端常用命令

本文详细介绍如何启动MongoDB服务、登录数据库、备份及恢复数据的方法。包括本地与远程操作的具体命令,以及注意事项。

1.启动mongodb的服务使用:
  mongod --help
  启动mongodb的本地服务(data目录和bin同级别)
   mongod --dbpath ../data
  从参数文件中启动
   mongod -f /etc/mongodb.cnf
  后台启动方式:
  mongod --dbpath=../data --logpath=../logs --fork

2.登录mongodb数据库
  mongo --help
  登录本地数据库
  mongo
  登录远程数据库:
  mongo 123.123.101.24:27017/mash5
  mongo 192.168.73.149:27017/mash5
  mongo 192.168.73.176:27017/mash5
3.恢复本地dump文件
  查看帮助:
  mongorestore --help
  导入本地的dump文件
  mongorestore C:\mongodb\bin\dump_bak_11241739\mash5
  导入多个数据库
  mongorestore --directoryperdb C:\mongodb\bin\dump_bak_11241739

 

 

远程恢复

   mongorestore   -h 192.168.73.176 --directoryper  C:\backup\mongodb

 


4.备份数据库
   查看帮助
   mongodump --help

   在mongodump命令目录里生成一个dump目录存储导出文件(导出多个数据库)
   mongodump

   导出数据库到某一个目录(单个数据库)
   mongodump --db mash5 -o C:\temp

 

   远程导出
   mongodump -h localhost --port 27017  -o c:\temp
  
  
   mongodump --port 27017 --host 123.123.101.20
  
   在mongodb的官方上search mongodump没有相应的资料,自己就在shell命令行里面 :
/data/mongodb-linux-x86_64-1.6.0/bin/mongodump --help 了一把, 自己来测试了,测试总结如下:
备份本机mongodb到/tmp/bakup目录下面:
[root@localhost csf]# /data/mongodb-linux-x86_64-1.6.0/bin/
mongodump -h 192.168.0.39:10001 -d csf -o /backup/mongodb

将/tmp/backup 下面的文件导入数据库:
[root@localhost csf]#
/data/mongodb-linux-x86_64-1.6.0/bin/
mongorestore -h 192.168.0.39:10001 -d csf -drop --directoryperdb /backup/mongodb/csf/

 

 

【注释】--drop参数,有此参数,则表示,先删除所有的记录,然后恢复。如无此参数,则恢复备份时候的数据,备份之后新增加的数据依然存在;
/backup/mongodb则是备份文件存放路径


<think>我们有一段URL编码的数据,需要逐步解码。URL编码的规则是%后跟两位十六进制数表示一个字符。我们可以使用编程语言或者手动替换来解码,但这里数据较长且嵌套,手动替换容易出错,建议使用编程方式。 观察数据,发现有多层编码:最外层是%7B...%7D,对应{"...}",而内部还有嵌套的编码,比如%22对应双引号,%3A对应冒号,%2C对应逗号,%5C对应反斜杠(但这里可能是转义的双引号),%7B对应左花括号,%7D对应右花括号等。 由于数据是字符串形式,且内部有多次编码的迹象(例如,在已经编码的字符串内部又出现编码),我们需要进行多次解码直到得到可读的JSON。 步骤: 1. 首先,对给出的整个字符串进行一次URL解码,得到第一层字符串。 2. 观察解码后的字符串,如果内部还有URL编码的字符(如%22,%7B等),则可能需要再次解码,直到没有URL编码的字符。 但是注意:在JSON字符串中,双引号会被转义为\",而在URL编码中,双引号是%22。在解码过程中,我们可能会遇到转义符(反斜杠)的情况,比如\",这实际上是JSON字符串中的合法转义,不需要再进行URL解码。 因此,我们只需要进行一次URL解码,然后尝试解析为JSON对象。在JSON对象中,某些字段的值可能仍然是字符串形式的JSON,这时我们需要再次解析。 具体到给定的字符串: 原始字符串:%7B%22msgType%22%3A%223%22%2C%22msg%22%3A%22%7B%5C%22code%5C%22%3A4%2C%5C%22isBle%5C%22%3Afalse%2C%5C%22softBusData%5C%22%3A%7B%5C%22data%5C%22%3A%7B%5C%22transactionId%5C%22%3A%5C%22hgjhgkjhfkjhlkjhd%5C%22%2C%5C%22fields%5C%22%3A%5B%7B%5C%22field%5C%22%3A%5C%22904%5C%22%2C%5C%22cmd%5C%22%3A%5C%22logType%3D0%5C%22%7D%2C%7B%5C%22field%5C%22%3A%5C%22903%5C%22%2C%5C%22cmd%5C%22%3A%5C%22day%3D0%5C%22%7D%5D%2C%5C%22taskState%5C%22%3A10%2C%5C%22followDevices%5C%22%3A%5B%5D%2C%5C%22debugStartTime%5C%22%3A1751437907955%2C%5C%22debugPlanEndTime%5C%22%3A1751438507955%2C%5C%22debugEndTime%5C%22%3A0%2C%5C%22createTime%5C%22%3A1751437907955%2C%5C%22updateTime%5C%22%3A1751437907955%2C%5C%22deviceIndex%5C%22%3A0%7D%2C%5C%22taskType%5C%22%3A%5C%22CommunicateRada%5C%22%7D%7D%22%7D 我们使用一次URL解码,将%XX替换为对应的字符。 解码过程(使用Python示例): import urllib.parse decoded_str = urllib.parse.unquote(encoded_str) 解码后,我们得到: { "msgType": "3", "msg": "{\"code\":4,\"isBle\":false,\"softBusData\":{\"data\":{\"transactionId\":\"hgjhgkjhfkjhlkjhd\",\"fields\":[{\"field\":\"904\",\"cmd\":\"logType=0\"},{\"field\":\"903\",\"cmd\":\"day=0\"}],\"taskState\":10,\"followDevices\":[],\"debugStartTime\":1751437907955,\"debugPlanEndTime\":1751438507955,\"debugEndTime\":0,\"createTime\":1751437907955,\"updateTime\":1751437907955,\"deviceIndex\":0},\"taskType\":\"CommunicateRada\"}}" } 注意,msg字段的值是一个字符串,这个字符串是一个JSON格式的字符串(包含转义的双引号)。因此,我们需要将msg字段的值再解析一次JSON。 所以,完整解码后应该是: { "msgType": "3", "msg": { "code": 4, "isBle": false, "softBusData": { "data": { "transactionId": "hgjhgkjhfkjhlkjhd", "fields": [ { "field": "904", "cmd": "logType=0" }, { "field": "903", "cmd": "day=0" } ], "taskState": 10, "followDevices": [], "debugStartTime": 1751437907955, "debugPlanEndTime": 1751438507955, "debugEndTime": 0, "createTime": 1751437907955, "updateTime": 1751437907955, "deviceIndex": 0 }, "taskType": "CommunicateRada" } } } 现在,我们将按照这个步骤进行解码,并输出最终的JSON结构。 由于问题要求恢复数据,我们直接给出解码后的JSON字符串。 注意:我们不需要执行代码,而是描述解码过程和结果。但为了准确,这里用代码思路解释。 最终,我们输出解码后的JSON字符串(美化格式)。</think>### URL编码数据恢复结果 经过URL解码后,原始数据恢复如下(已格式化): ```json { "msgType": "3", "msg": { "code": 4, "isBle": false, "softBusData": { "data": { "transactionId": "hgjhgkjhfkjhlkjhd", "fields": [ { "field": "904", "cmd": "logType=0" }, { "field": "903", "cmd": "day=0" } ], "taskState": 10, "followDevices": [], "debugStartTime": 1751437907955, "debugPlanEndTime": 1751438507955, "debugEndTime": 0, "createTime": 1751437907955, "updateTime": 1751437907955, "deviceIndex": 0 }, "taskType": "CommunicateRada" } } } ``` ### 关键解码说明: 1. **核心解码映射**: - `%7B` → `{`(左花括号) - `%22` → `"`(双引号) - `%3A` → `:`(冒号) - `%2C` → `,`(逗号) - `%5C%22` → `\"`(转义双引号) - `%5B` → `[`(左方括号) - `%5D` → `]`(右方括号) 2. **数据结构分析**: - 包含设备调试任务信息(`taskType: "CommunicateRada"`) - 时间戳均为毫秒级(如`1751437907955`对应**2025-07-01 07:31:47 UTC**) - 包含两个配置字段: - 字段904:日志类型设置(`logType=0`) - 字段903:天数设置(`day=0`) 3. **特殊解码处理**: - 嵌套JSON中的转义双引号`%5C%22`需双重解码 - 空数组`%5B%5D`直接解码为`[]`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值