簡體   English   中英

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 output 只是系統mongo的數據庫

['admin', 'config', 'local']

誰能指出我需要做些什么來解決? 非常感謝。

試試這個,添加集合和一些測試數據,應該可以。 Mongo 不會在沒有收集和數據的情況下創建數據庫。

appdb = dbclient["blog"]
appcoll = appdb["blogcollection"]
document = {"user_id": 1, "user": "test"}
appcoll.insert_one(document)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM