簡體   English   中英

Pymongo 創建角色問題

[英]Pymongo Create Role Issue

我正在使用以下代碼創建一個新角色。

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 的鍵值對表示為 python dict s。 所以必須引用任何鍵,即

{"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=[])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM