当前位置: 首页 > 知识库问答 >
问题:

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

宋华灿
2023-03-14

我正在用Pymongo构建一个烧瓶应用程序。在我的python脚本中,数据应该用。save()保存,也可以用。find()检索,如果我重新启动应用程序,它也会保持不变。然而,如果我从另一个终端或在停止应用程序后从同一终端检查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
admin   0.000GB
config  0.000GB
local   0.000GB
mydatabase  0.000GB
use mydatabase
db.mydatabase.customers.find()
>
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
MongoDB shell version v4.2.8
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("20a57a18-201c-4393-a9a3-c0ee53e028e8") }
MongoDB server version: 4.2.8
Server has startup warnings: 
2020-07-11T12:16:02.034+0000 I  STORAGE  [initandlisten] 
2020-07-11T12:16:02.034+0000 I  STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2020-07-11T12:16:02.034+0000 I  STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2020-07-11T12:16:02.940+0000 I  CONTROL  [initandlisten] 
2020-07-11T12:16:02.940+0000 I  CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2020-07-11T12:16:02.940+0000 I  CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2020-07-11T12:16:02.940+0000 I  CONTROL  [initandlisten]

看到“连接到:mongoDb://127.0.0.1:27017/?compressors=disabled&gssapiserviceName=mongoDb”后,我试图将MongoClient连接改为“mongoDb://127.0.0.1:27017/?compressors=disabled&gssapiserviceName=mongoDb”,看看这是否可行,但它只是抛出并出错:

    /home/vagrant/.local/lib/python3.6/site-packages/pymongo/compression_support.py:55: UserWarning: Unsupported compressor: disabled
  warnings.warn("Unsupported compressor: %s" % (compressor,))
/home/vagrant/.local/lib/python3.6/site-packages/pymongo/common.py:756: UserWarning: Unknown option gssapiservicename
  warnings.warn(str(exc))

共有1个答案

鲜于仰岳
2023-03-14

您需要的语法是:

db.customers.find()

在贝壳上。您已经使用use命令指定了数据库。

要列出集合,它是:

show collections
 类似资料:
  • 我最近编写了一个Android应用程序。这只是一个简单的应用程序,让你保持几个简单的计数器间隔的篮球比赛得分。我得到了增加一个保存功能的需求,这样你就可以保存你的分数,然后加载他们回来。目前,当您停止应用程序时,您的数据将丢失。所以我想知道的是我必须添加什么才能让应用程序保存标签(分数),然后加载它。谢谢,伙计们,对不起,我对这些东西不太了解。

  • 问题内容: 我目前正在使用Swift开发的iOS应用程序,需要在设备上存储一些用户创建的内容,但似乎找不到一种简单快捷的方法来在设备上存储/接收用户内容。 有人可以解释如何存储和访问本地存储吗? 想法是在用户执行操作时存储数据,并在应用程序启动时接收数据。 问题答案: 如果仅存储两个字符串,最简单的解决方案是,在Swift 3中,该类已重命名为just 。 最好将密钥存储在全局位置,以便您可以在代

  • 问题内容: 我尝试使用以下代码下载pdf文件。它存储在应用程序数据中。但是我需要在iPhone的 “文件” 文件夹中显示下载的pdf 。 可能吗?? 问题答案: 这是下载任何文件并保存到“照片”(如果是图像文件)或“文件”(如果是pdf)的方法

  • 我正在使用Django cookiecutter与docker和docker compose。 在制作中,我使用dj static为我的媒体文件提供服务。 每当我使用“docker-compose down”命令时,我的媒体卷中的所有内容都会被删除。我认为这是该命令的预期结果,但“postgreSQL”中的所有内容都被保留。 我怎样才能用“媒体”卷做到这一点?

  • Android Studio中我的应用程序的可以编辑,但编辑完文本后,退出窗口时将不会保存。怎么办?