pymongo 不创建新数据库(mongo 在 docker 上是 运行)
pymongo does not create new database (mongo is running on a docker)
我使用 docker-compose 在本地计算机上使用用户名和密码启动 mongo。看起来 运行 还可以。
然后我运行一个python脚本,导入pymongo创建数据库。发送没有错误。但是,根本没有创建新数据库。
我的docker-compose.yml脚本如下
version: '3'
services:
mongodb:
image: mongo
ports:
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=mongodb
- MONGO_INITDB_ROOT_PASSWORD=mongodb
volumes:
- ./mongodb-data:/data/db
mongo-express:
image: mongo-express:0.54
ports:
- 8080:8081
environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME=mongodb
- ME_CONFIG_MONGODB_ADMINPASSWORD=mongodb
- ME_CONFIG_MONGODB_SERVER=mongodb
depends_on:
- mongodb
volumes:
- ./mongodb-data:/data/db
volumes:
db-data:
我的部分python脚本如下
from flask import Flask, render_template, request
from pymongo import MongoClient
app = Flask(__name__)
dbclient = MongoClient(
"mongodb://localhost:27017/",
username = 'mongodb',
password = 'mongodb'
)
appdb = dbclient['blog']
print(dbclient.list_database_names())
shell 输出只是系统 mongo 的数据库
['admin', 'config', 'local']
任何人都可以指出我需要做什么来修复吗?非常感谢。
试试这个,添加集合和一些测试数据,应该可以。 Mongo 没有收集和数据就不会创建数据库。
appdb = dbclient["blog"]
appcoll = appdb["blogcollection"]
document = {"user_id": 1, "user": "test"}
appcoll.insert_one(document)
我使用 docker-compose 在本地计算机上使用用户名和密码启动 mongo。看起来 运行 还可以。
然后我运行一个python脚本,导入pymongo创建数据库。发送没有错误。但是,根本没有创建新数据库。
我的docker-compose.yml脚本如下
version: '3'
services:
mongodb:
image: mongo
ports:
- 27017:27017
environment:
- MONGO_INITDB_ROOT_USERNAME=mongodb
- MONGO_INITDB_ROOT_PASSWORD=mongodb
volumes:
- ./mongodb-data:/data/db
mongo-express:
image: mongo-express:0.54
ports:
- 8080:8081
environment:
- ME_CONFIG_MONGODB_ADMINUSERNAME=mongodb
- ME_CONFIG_MONGODB_ADMINPASSWORD=mongodb
- ME_CONFIG_MONGODB_SERVER=mongodb
depends_on:
- mongodb
volumes:
- ./mongodb-data:/data/db
volumes:
db-data:
我的部分python脚本如下
from flask import Flask, render_template, request
from pymongo import MongoClient
app = Flask(__name__)
dbclient = MongoClient(
"mongodb://localhost:27017/",
username = 'mongodb',
password = 'mongodb'
)
appdb = dbclient['blog']
print(dbclient.list_database_names())
shell 输出只是系统 mongo 的数据库
['admin', 'config', 'local']
任何人都可以指出我需要做什么来修复吗?非常感谢。
试试这个,添加集合和一些测试数据,应该可以。 Mongo 没有收集和数据就不会创建数据库。
appdb = dbclient["blog"]
appcoll = appdb["blogcollection"]
document = {"user_id": 1, "user": "test"}
appcoll.insert_one(document)