我尝试通过机器人框架连接并验证mongodb。 遵循以下步骤:
Connect To MondoDB | mongodb://admin:admin@192.20.33.226 | 27017 | 10 | None | <type 'dict'> | False |
成功连接。
尝试从数据库查询
Retrieve Mongodb Records With Desired Fields dbName | dbCollName | recordJSON | fields | return__id=True | returnDocuments=False
执行此语句后,我收到以下错误。
OperationFailure: Authentication failed.
日志:
Starting test: MongoConnection.Query from MongoDB
20161209 17:05:05.866 : INFO :
| Connect To MondoDB | dbHost | dbPort | dbMaxPoolSize | dbNetworktimeout | dbDocClass | dbTZAware |
| Connect To MondoDB | mongodb://tecnotree:tecnotree@172.20.33.226 | 27017 | 10 | None | <type 'dict'> | False |
20161209 17:05:05.907 : INFO : | ${allResults} | retreive_mongodb_records_with_desired_fields | clmpreprod | Profile | { "profileDetails.basicDetails.customerCode": "C014519" } | profileDetails.customerCategory.masterCode,profileDetails.customerSubCategory.masterCode | False |
20161209 17:05:05.910 : FAIL : OperationFailure: Authentication failed.
Ending test: MongoConnection.Query from MongoDB
我坐在我的MongoDB数据库analysit上并进行了调试,我们开始知道,首先它尝试使用给定的用户凭据连接到adminDB,并在查询时将其连接到实际数据库。
这里,在我们的系统中,admin db和system db的凭据不同,这就是它失败的原因。
我们的db分析师证实,他们不会允许连接到admin db,因为它拥有所有权限。
任何人都可以帮助我,如何连接和查询mongodb,它将无法连接到admin db。
由于 Sarada
答案 0 :(得分:1)
大多数驱动程序支持相同类型的连接字符串,因此您应该能够将以下查询内容附加到当前连接字符串:
mongodb://username:password@host/database?authSource=authDatabase
见
答案 1 :(得分:0)
你也应该在连接时提到dbname
Connect To MondoDB | mongodb://admin:admin@192.20.33.216/userDB | 27017 | 10 | None | <type 'dict'> | False
Retrieve Mongodb Records With Desired Fields dbName | dbCollName | recordJSON | fields | return__id=True | returnDocuments=False
这将有效
感谢Kevin的帮助