Pymongo创建角色问题



我正在使用以下代码创建一个新角色。

db.createRole(
{
createRole: "role-name",
privileges: [
{resource: {db: "weather_db", collection: ""},
actions: ["insert", "update", "find", "delete"]}
],
roles: [{role: "read", db: "db1"}]
})

然而,我不断得到以下错误:

NameError : name "CREATEROLE" not defined

如何修复?

pymongo可能会令人困惑,因为在许多方面,命令语法与mongo shell中的命令相似,有时甚至完全相同。

但是pymongo和shell命令并不相同。如果你想使用pymongo版本,你需要检查pymongo文档,尤其是管理任务。

此外,pymongo的键值对表示为pythondicts。因此,必须引用任何密钥,即

{"key": "value"}

而不是

{key: "value"}

从文档中没有创建角色的具体任务,但从db.createRole的MongoDB文档中,它指出:

db.createRole((方法包装createRole命令。

pymongo确实允许您使用db.command()方法运行命令。

最后,delete不是一个内置的动作;您想要remove

把它们放在一起看起来像:

from pymongo import MongoClient
db = MongoClient()['admin']
db.command("createRole", "role-name",
privileges=[{"resource": {"db": "weather_db", "collection": ""}, 
"actions": ["insert", "update", "find", "remove"]}],
roles=[])

相关内容

  • 没有找到相关文章

最新更新