应用程序保存的 Pymongo 数据在 mongo shell 中不可用

我正在使用 pymongo 构建一个烧瓶应用程序。在我的 python 脚本中,数据使用 .save() 保存,就像它应该的那样,并且可以使用 .find() 检索,如果我重新启动应用程序,它也会持续存在。但是,如果我从另一个终端检查 mongo 数据库,或者在停止应用程序后从同一个终端检查 mongo 数据库,则数据不存在。为了确保我正确使用 pymongo,我从 w3schools.com 复制并粘贴了以下基本脚本:


#!/usr/bin/python3

import pymongo


myclient = pymongo.MongoClient("mongodb://localhost:27017/")

mydb = myclient["mydatabase"]

mycol = mydb["customers"]

mydict = { "name": "John", "address": "Highway 37" }

obj = mycol.insert_one(mydict)

obj = mycol.find_one()

print(obj)

输出是:


{'_id': ObjectId('5f09b0c4dfedb570e2f5411e'), 'name': 'John', 'address': 'Highway 37'}

就像你期望的那样。这是运行上述脚本之前显示数据库的结果:


> show databases

admin   0.000GB

config  0.000GB

local   0.000GB

这是运行脚本后运行 show databases 的结果:


> show databases

admin   0.000GB

config  0.000GB

local   0.000GB

mydatabase  0.000GB

然而:


use mydatabase

db.mydatabase.customers.find()

>

这些集合没有保存在我尝试连接的 mongo 服务器中,或者由于某种原因它们只是没有显示在 shell 中。这是我的 /etc/mongod.config 文件:(删除了注释行,因此 stackoverflow 不会将其格式化为标记)


storage:

  dbPath: /var/lib/mongodb

  journal:

   enabled: true



systemLog:

  destination: file

  logAppend: true

  path: /var/log/mongodb/mongod.log


net:

  port: 27017

  bindIp: 127.0.0.1


processManagement:

  timeZoneInfo: /usr/share/zoneinfo


慕妹3146593
浏览 53回答 1
1回答

噜噜哒

你想要的语法是:db.customers.find()在外壳上。您已经使用命令指定了数据库use。要列出集合,它是:show collections
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python