无法连接MongoDB本地27017端口?

连接MongoDB数据库

# 连接远程服务器(示例)
mongo --host 192.168.1.100 --port 27017 -u admin -p password

数据库操作

> show dbs                  # 查看所有数据库
> use mydb                  # 切换到mydb数据库(不存在则创建)
> db.dropDatabase()         # 删除当前数据库
> db.getName()              # 查看当前数据库名

集合(表)管理

> db.createCollection("users")             # 创建集合
> show collections                         # 显示所有集合
> db.users.drop()                          # 删除集合
> db.users.stats()                         # 查看集合统计信息

文档(记录)操作

插入数据

> db.users.insertOne({name: "张三", age: 28, email: "zhang@example.com"})
> db.users.insertMany([
    {name: "李四", age: 32},
    {name: "王五", age: 25}
])

查询数据

> db.users.find()                          # 查询所有文档
> db.users.findOne({age: {$gt: 30}})       # 查找年龄>30的第一条记录
> db.users.find().sort({age: -1}).limit(5) # 按年龄降序取前5条

更新数据

> db.users.updateOne(
    {name: "张三"},
    {$set: {age: 29, status: "active"}}    # 更新指定字段
)
> db.users.updateMany(
    {age: {$lt: 30}},
    {$inc: {age: 1}}                       # 年龄+1
)

删除数据

> db.users.deleteOne({name: "李四"})
> db.users.deleteMany({status: "inactive"})

索引管理

> db.users.createIndex({email: 1})         # 创建升序索引
> db.users.createIndex({name: 1, age: -1}) # 复合索引
> db.users.getIndexes()                    # 查看所有索引
> db.users.dropIndex("email_1")            # 删除索引

用户权限管理

# 管理员连接后创建用户
> use admin
> db.createUser({
    user: "webadmin",
    pwd: "securepass123",
    roles: [{
        role: "readWrite", 
        db: "mydb"
    }]
})
# 修改密码
> db.changeUserPassword("webadmin", "newpass456")

数据导入导出

# 导出JSON数据
mongoexport --db mydb --collection users --out users.json
# 导入JSON数据
mongoimport --db mydb --collection users --file users.json
# 导出CSV
mongoexport --type=csv --fields name,age --db mydb --collection users

备份与恢复

# 全库备份
mongodump --host localhost --out /backup/20251001
# 单库备份
mongodump --db mydb --archive > mydb_backup.gz
# 恢复数据
mongorestore --db mydb /backup/20251001/mydb

性能监控

> db.currentOp()                  # 查看当前操作
> db.serverStatus()               # 服务器状态
> db.users.explain().find(...)    # 查询分析
> db.collection.totalIndexSize()  # 索引大小

安全退出与日志

> exit          # 退出mongo shell
Ctrl + C        # 强制退出
# 查看日志(Linux系统)
tail -f /var/log/mongodb/mongod.log

注意事项

  1. 生产环境必做

    • 启用身份验证 security.authorization: enabled
    • 定期备份关键数据
    • 使用--tls参数加密连接
  2. 操作警告

    > db.users.update({}, {$unset: {phone:1}}, {multi:true})  # 批量操作前先测试
    > db.runCommand({collMod: "users", validator: {...}})     # 模式变更需停服维护
  3. 效率优化

    • 查询时使用.projection()限制返回字段
    • 避免全集合扫描(COLLSCAN
    • 索引内存占用不超过RAM的70%

引用说明:本文操作基于MongoDB 6.0+版本,参考MongoDB官方文档[1],关键安全配置遵循OWASP数据库安全标准[2],备份策略建议采用3-2-1原则(3份副本,2种介质,1份异地)[3]。

[1] MongoDB Command Line Tools Documentation
[2] OWASP Database Security Cheat Sheet
[3] NIST SP 800-209 Security Guidelines for Storage Infrastructure

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/5332.html

(0)
酷番叔酷番叔
上一篇 2025年6月22日 19:43
下一篇 2025年6月22日 20:24

相关推荐

  • 安全数据型VOC检测仪如何保障数据安全与监测准确?

    安全数据型VOC气体检测仪是现代工业安全与环境监测领域的重要工具,其核心价值在于通过精准、可靠的数据采集与分析,为VOC(挥发性有机物)泄漏风险防控提供科学依据,随着工业生产中VOC气体种类日益复杂、安全环保要求不断提高,这类检测仪已从单一浓度监测设备,升级为集数据安全、智能预警、多维度管理于一体的综合性安全解……

    2025年11月11日
    8200
  • 为何AT指令不保存短信?

    at指令不保存短信在移动通信和嵌入式系统中,AT指令是一种标准的控制语言,用于与调制解调器或通信模块进行交互,短信功能是许多设备(如物联网终端、车载系统、工业控制器等)的重要组成部分,而AT指令在短信的发送、接收和管理中扮演着核心角色,某些场景下可能需要临时处理短信而不希望其被长期保存,例如验证码接收、一次性通……

    2025年12月13日
    5600
  • 如何修改命令提示符界面的背景与文字颜色?

    命令提示界面(通常指Windows中的命令提示符CMD或PowerShell)是许多用户日常操作中常用的工具,无论是运行系统命令、执行脚本还是进行开发调试,都可能长时间面对这个窗口,默认的黑底绿字或蓝底白字虽然经典,但长时间使用容易造成视觉疲劳,或是在特定环境下(如高对比度模式)影响可读性,通过简单的设置,我们……

    2025年8月22日
    3.3K00
  • 安全中心人脸识别怎么更换视频?

    更换安全中心人脸识别视频通常因设备型号或系统版本略有差异,但核心操作逻辑相似,主要涉及进入安全中心、找到人脸识别管理、选择更换视频并重新录制等步骤,以下是详细操作指南及注意事项,帮助顺利完成更换,操作前准备在更换视频前,需确保以下条件,避免因准备不足导致操作失败:设备准备:确保手机电量充足(建议20%以上),避……

    2025年10月27日
    8700
  • 国内BI市场排行现状究竟如何?

    帆软领跑,Smartbi、永洪等国产厂商占据主导,云BI与国产化替代成为主要趋势。

    2026年2月28日
    2300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信