MongoDB在Python中创建验证器后抛出“ns不存在”

6g8kf2rb  于 2023-03-29  发布在  Go
关注(0)|答案(1)|浏览(121)

所以我尝试使用Python在MongoDB中创建验证器,当我运行代码时,它会抛出这样的错误
pymongo.errors.OperationFailure:ns不存在。

book_validator = {some data}
production.create_collection("")
production.command("collMod", "book", validator=book_validator)

我发现在运行代码后它创建了集合。但我想知道是什么导致了错误。但验证器没有创建。我在一些问题中发现了类似的问题,但它几年前没有解决,所以希望现在有人知道答案。

hfyxw5xn

hfyxw5xn1#

此示例代码显示如何使用db.command()创建/更新验证器

from pymongo import MongoClient

client = MongoClient()
my_db = client['mydatabase']
my_coll = 'mycollection'

my_validator = {
    '$jsonSchema': {
        'bsonType': 'object',
        'required': ['name'],
        'properties': {
            'name': {
                'bsonType': 'string',
                'minLength': 4,
                'maxLength': 20,
                'description': 'must be a string (4 to 20 chars) and is required'
            }
        }
    }
}

def update_validator(db, collection, validator):
    query = {'collMod': collection,
             'validator': validator,
             'validationLevel': 'strict',
             'validationAction': 'error'
             }

    db.command(query)

update_validator(my_db, my_coll, my_validator)

相关问题