【问题标题】:Python Flask MongoDB - collection no dataPython Flask MongoDB - 收集无数据
【发布时间】:2017-05-31 10:36:06
【问题描述】:

我有一个烧瓶应用程序在 (192.168.2.100) 上的一个 vagrant box 和另一个在 (192.168.2.110) 上运行 mongoDB 3.4 的 vagrant box 中运行。

当我从我的应用程序运行这个 python 代码时:

mongo_client = MongoClient(mongodb://myuser:mypassword@192.168.2.110/database_local)
g.db = mongo_client.db.database_local

app_users = g.db.app_users

user_id = app_users.insert_one(
    {
        'username': 'user',
        'password': 'password'
    }
).inserted_id
// user_id is created and returned ("592b2c57962d7408027e274d")

// When i run this to verify:
users = g.db.app_users.find()
for user in users:
    print(user['username'])

它打印所有插入的用户...

但是:

当我 ssh 进入我的 mongodb 并在 mongo 控制台中运行时:

use database_local
show collections

它什么也不返回,就像数据库是空的一样。

【问题讨论】:

  • 当你 ssh 进入机器时,你不应该使用数据库 app_users 而不是 database_local 吗?
  • 嘿,我编辑了我的源代码,但结果还是一样

标签: python mongodb flask pymongo


【解决方案1】:

您的 MongoDB 相关代码看起来很奇怪...尝试像这样连接:

client = MongoClient('mongodb://myuser:mypassword@192.168.2.110/')  # pass just these options

db = client.database_local  # select database_local database
user_id = db.app_users.insert_one({  # insert into app_users collection
    'username': 'user',
    'password': 'password'
}).inserted_id

然后在 ssh-ing 到你的远程机器之后,选择一个合适的数据库:

use database_local
show collections

您应该会看到 app_users 包含您插入的数据的集合。

Read more about PyMongo basics here!

【讨论】:

    猜你喜欢
    • 2018-10-14
    • 2018-11-14
    • 2020-08-31
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2012-11-26
    相关资源
    最近更新 更多