鱼C论坛

 找回密码
 立即注册
查看: 1768|回复: 9

[已解决]python中mongodb问题

[复制链接]
发表于 2023-7-5 08:43:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用robo3t连接mongo数据库手动创建数据库提示如下错误:
微信截图_20230705083923.jpg

但是我重新启动了robo3t显示的是数据库已经创建好了.
创建数据库没有报错,但是就是没有成功,我重新启动了robo3t才显示数据库创建好了。

我的pycharm代码如下:
import pymongo

client = pymongo.MongoClient(host='localhost', port=27017)
db = client.test
最佳答案
2023-7-5 10:02:43
python小小白哟 发表于 2023-7-5 09:56
哦 原来是这个原因,我刚才创建了一个test数据库  并创建了一个集合,在students集合中插入了若干个数据 ...

那给个最佳答案呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-5 08:43:43 | 显示全部楼层
根据您提供的信息,问题可能出在您的连接配置上。请确保您正确设置了MongoDB的主机和端口。

您的代码中使用的是localhost作为主机名,这表示连接本地的MongoDB服务器。如果您的MongoDB服务器并非运行在本地,应该将localhost替换为正确的主机名或IP地址。

另外,请确保MongoDB服务器在运行,并监听指定的端口(默认为27017)。如果您的MongoDB服务器已经启动,但仍然无法连接,您可以尝试检查防火墙设置,以确保允许与MongoDB服务器通信的网络流量通过。

最后,建议您在连接之前先确保数据库已经成功创建并且可以访问。使用Robo 3T或其他MongoDB管理工具,手动尝试创建数据库,然后再进行连接测试。

希望这些信息对您有帮助!如有更多问题,请随时提问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-5 08:43:48 | 显示全部楼层
本帖最后由 编程追风梦 于 2023-7-5 08:56 编辑

根据您的描述,您在使用Python中的pymongo库连接MongoDB数据库并创建数据库时遇到了问题。根据您提供的代码,我看到您将主机设置为localhost,端口设置为27017,并尝试连接到MongoDB数据库。

首先,请确保您已经正确安装了pymongo库。您可以使用以下命令来安装它:

pip install pymongo


接下来,确保MongoDB服务已经在您的本地计算机上运行。您可以通过运行MongoDB的守护进程或者使用命令行启动MongoDB服务。

在您提供的代码中,您创建了一个MongoClient对象,并将其赋值给变量client。但是,在后续的代码中,您使用了pymongo.MongoClient而不是client,这可能导致连接失败。

请尝试修改您的代码如下:

python
import pymongo

client = pymongo.MongoClient(host='localhost', port=27017)
db = client.test


这样,您应该可以成功连接到MongoDB数据库,并在test数据库中创建一个对象db以供您进行操作。请确保MongoDB服务正在运行,并且您对数据库的访问权限正确设置。

如果问题仍然存在,请提供完整的错误信息和您的操作系统信息,以便进一步协助您解决问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-5 09:40:15 | 显示全部楼层
很奇怪啊 这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-5 09:44:45 | 显示全部楼层
本帖最后由 isdkz 于 2023-7-5 09:46 编辑

应该是 root3t 跟 mongo 的 版本不匹配

这个错误信息看起来是由于尝试使用不再被支持的  getLastError  命令产生的。 getLastError  命令是在旧版本的 MongoDB 中使用的,以检查最后一次操作是否成功。然而在 MongoDB 3.0 及以上版本中,这个命令已经不再被支持,取而代之的是新的写入操作命令。

所以如果你是在试图创建 MongoDB 数据库时收到这个错误,那么你可能需要检查你的代码,确保你没有使用任何不再被支持的命令。在新的 MongoDB 版本中,你应该使用新的写入操作 API,如  insertOne , updateOne , deleteOne , replaceOne  等。

如果你正在使用的 MongoDB 客户端或驱动程序是过时的,也可能会看到这个错误。你可能需要更新你的 MongoDB 客户端或驱动程序,确保它们支持你正在使用的 MongoDB 版本。

另外,如果你在创建数据库时遇到问题,那么可能是你没有足够的权限。在 MongoDB 中,你需要拥有相应的角色和权限才能创建数据库。你可以检查你的用户角色和权限,或者联系你的数据库管理员以获取更多帮助。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-5 09:51:52 | 显示全部楼层
isdkz 发表于 2023-7-5 09:44
应该是 root3t 跟 mongo 的 版本不匹配

这个错误信息看起来是由于尝试使用不再被支持的  getLastError   ...

你好 我用MongoDBCompass连接mongodb数据库
在pycharm中用以下代码:
import pymongo

client = pymongo.MongoClient(host='localhost', port=27017)
db = client.test

没有报错  但是,我用MongoDBCompass刷新了一下也没有test这个数据库
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-5 09:53:49 | 显示全部楼层
python小小白哟 发表于 2023-7-5 09:51
你好 我用MongoDBCompass连接mongodb数据库
在pycharm中用以下代码:

在 MongoDB 中,当你创建数据库连接并指向一个不存在的数据库(在你的例子中是 "test")时,MongoDB 不会立即在物理存储上创建这个数据库。数据库将只在内存中被引用,但在你向该数据库写入数据之前,不会在磁盘上创建相应的文件。

所以,尽管你的 Python 代码没有出现错误,你在 MongoDB Compass 中看不到 "test" 数据库,这是正常的。一旦你在 "test" 数据库中创建一个集合并插入一些数据,你应该就能在 MongoDB Compass 中看到这个数据库了。

这里有一个创建集合并插入数据的例子:
import pymongo

client = pymongo.MongoClient(host='localhost', port=27017)
db = client.test
collection = db['my_collection']
post = {"author": "Mike", "text": "My first blog post!"}
collection.insert_one(post)

在运行了这段代码之后,你就可以在 MongoDB Compass 中看到 "test" 数据库以及它包含的 "my_collection" 集合了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-5 09:56:13 | 显示全部楼层
isdkz 发表于 2023-7-5 09:53
在 MongoDB 中,当你创建数据库连接并指向一个不存在的数据库(在你的例子中是 "test")时,MongoDB 不会 ...

哦 原来是这个原因,我刚才创建了一个test数据库  并创建了一个集合,在students集合中插入了若干个数据,显示是成功了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-5 10:02:43 | 显示全部楼层    本楼为最佳答案   
python小小白哟 发表于 2023-7-5 09:56
哦 原来是这个原因,我刚才创建了一个test数据库  并创建了一个集合,在students集合中插入了若干个数据 ...

那给个最佳答案呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-5 10:37:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 13:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表