我正在创建一个集合并将其插入数据库中
我已经导入了pymongo,并且还以这种方式定义了db = myClient [“ mydb”],但它表示命令插入需要身份验证
>>> import pymongo
>>> from pymongo import MongoClient
>>> myClient = MongoClient()
>>> db = myClient.mydb
>>> users = db.users
>>> user1 = {"username": "nick", "password": "mysecurepass", "fav_num": 445}
>>> user_id = users.insert_one(user1).inserted_id
回溯(最近通话最近): 文件“”,第1行,位于 在insert_one中,文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py”,第700行 会话=会话), _insert中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py”,第614行 会话_by_doc_val) _insert_one中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py”,第602行 已确认,_insert_command,会话) _retryable_write中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/mongo_client.py”,第1280行 返回self._retry_with_session(retryable,func,s,None) _retry_with_session中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/mongo_client.py”,第1233行 返回函数(会话,sock_info,可重试) _insert_command中的第597行的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/collection.py” retryable_write = retryable_write) 在命令中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/pool.py”,行584 user_fields = user_fields) 在命令中的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/network.py”,第158行 parse_write_concern_error = parse_write_concern_error) _check_command_response中的第155行的文件“ /home/mohsen/.local/lib/python3.6/site-packages/pymongo/helpers.py” 提高OperationFailure(msg%errmsg,代码,响应) pymongo.errors.OperationFailure:命令插入需要身份验证
答案 0 :(得分:0)
看起来您正在使用的MongoDB实例已通过身份验证进行设置,但是当您使用myClient = MongoClient()
创建连接时,您并未为其提供凭据。当您连接到数据库时,请尝试以下操作:
client = MongoClient('example.com',
username='user',
password='password')
这会将正确的用户名和密码传递给Mongo实例,并允许您进行连接。 use this link中提供了有关如何在pymongo中使用身份验证的示例。