mongo使用新视野小记

博客记录了Mongo数据库的一种新执行方式,无需先进入数据库。这种方式能展示数据库数据集中的信息,解决了数据库或数据集中间存在横线时查询报错的问题,让使用更加方便。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单小记一下吧 :

首先先上一个网站的链接:https://www.mongodb.org.cn/manual/Collection/

平时我们使用mongo数据库查询的时候都是这样的:

但是今天师弟发现了一个新的mongo执行方式。不用首先进入数据库就ok。

mongo top-0 --eval 'db.getCollection("openssl-1.0.1f-armeb").find().forEach(function(doc){print("{" + "\"function_name\": " + "\"" + doc.function_name + "\"" + ", \"bin_path\": " + "\"" + doc.bin_path + "\"");});'

如上面命令所示,top-0为数据库名,openssl-1.0.1f-armeb为数据集。其中function_name和bin_path是数据集中的列,或者说属性或者键key。

这样也能够展示数据库的数据集中的信息。

解决的问题:

(1)这解决了数据库或者数据集中间存在横线的问题,也就是说进入数据库中,查询数据库或者数据集的时候中间有横线会报错。如下图所示:

但是像下面这样执行的话,就是可行的

这样能行得通的话,下载再使用的时候就方便了很多。

<think>我们正在处理一个关于在Docker中运行MongoDB并使用非默认端口的问题。用户要求提供一个配置不同端口的示例。根据引用[1]中的示例,运行MongoDB容器的命令是:dockerrun--namemongo-p27017:27017...这里,`-p27017:27017`表示将容器的27017端口映射到主机的27017端口。要使用不同的端口,我们只需要修改这个映射。例如,如果我们想将主机的28000端口映射到容器的27017端口,我们可以使用:-p28000:27017因此,修改后的命令可能如下:dockerrun--namemongo-p28000:27017\-v/usr/local/docker/mongodb/data:/data/db\-eMONGO_INITDB_ROOT_USERNAME=root\-eMONGO_INITDB_ROOT_PASSWORD=root\-dmongo:5.0.3解释:-`-p28000:27017`:将主机的28000端口映射到容器内部的27017端口(MongoDB默认端口)。-其他选项保持不变:挂载数据卷、设置环境变量等。这样,我们就可以通过主机的28000端口访问MongoDB服务了。另外,引用[2]提到了使用DockerCompose可以简化多容器应用的配置。如果用户使用DockerCompose,可以在docker-compose.yml文件中指定端口映射。例如,创建一个docker-compose.yml文件:```yamlversion:'3'services:mongodb:image:mongo:5.0.3container_name:mongoports:-"28000:27017"#主机端口:容器端口volumes:-/usr/local/docker/mongodb/data:/data/dbenvironment:MONGO_INITDB_ROOT_USERNAME:rootMONGO_INITDB_ROOT_PASSWORD:root```然后运行:docker-composeup-d这样也可以实现同样的效果。总结:用户可以通过修改`dockerrun`命令中的`-p`参数或者使用DockerCompose文件来配置不同的端口。现在,根据要求,我们需要生成相关问题。考虑到用户的问题是关于Docker中MongoDB的端口配置,我们可以生成以下相关问题:相关问题:1.如何验证MongoDB容器是否在指定的非默认端口上运行?2.在Docker中运行多个MongoDB容器时,如何避免端口冲突?3.如何配置MongoDB容器使用自定义配置文件,并在其中更改默认监听端口?4.使用非默认端口连接MongoDB时,客户端连接字符串应该如何编写?注意:在回答中,我们引用了引用[1]和引用[2],因此在末尾添加引用标识。</think>### 在 Docker 中配置 MongoDB 使用非默认端口 在 Docker 中运行 MongoDB 时修改默认端口(27017)的方法如下: #### 方法 1:通过 `docker run` 命令指定端口映射 ```bash docker run --name mongo \ -p 28000:27017 \ # 将主机28000端口映射到容器27017端口 -v /your/data/path:/data/db \ -e MONGO_INITDB_ROOT_USERNAME=root \ -e MONGO_INITDB_ROOT_PASSWORD=root \ -d mongo:5.0.3 ``` **关键参数说明**: - `-p 28000:27017`:将**主机端口**(28000)映射到**容器内部端口**(27017) - 访问方式:`mongodb://root:root@localhost:28000` #### 方法 2:通过 Docker Compose 配置 创建 `docker-compose.yml` 文件: ```yaml version: '3.8' services: mongodb: image: mongo:5.0.3 container_name: mongo ports: - "28000:27017" # 主机端口:容器端口 volumes: - /your/data/path:/data/db environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: root ``` 启动服务: ```bash docker-compose up -d ``` #### 重要注意事项 1. **客户端连接**:所有客户端必须使用新端口(如28000)连接 2. **防火墙配置**:确保主机防火墙允许新端口通信 3. **端口冲突**:确认主机端口未被其他服务占用 4. **容器内部端口**:MongoDB 容器内部始终使用 `27017`,只需修改主机映射 > 通过端口映射实现服务暴露,无需修改容器内部的 MongoDB 配置[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值