gpt4 book ai didi

python - 使用 pymongo 将验证器添加到 Mongodb 集合

转载 作者:可可西里 更新时间:2023-11-01 09:09:17 25 4
gpt4 key购买 nike

我正在尝试使用 pymongo 将验证器添加到 MongoDB 集合。

我想运行的命令改编自 here

等同于:

db.runCommand( {
collMod: "contacts",
validator: { phone: { $type: 'string' } },
validationLevel: "moderate"
} )
{ "ok" : 1 }

如果在电话字段中插入非字符串数据类型,随后将抛出错误

使用 python 我做了以下事情:

db.command({'collMod': 'contacts',
'validator': {'phone': {'$type': 'string'}},
'validationLevel': 'moderate'})
.
.
.
InvalidDocument: Cannot encode object: Collection(Database(MongoClient(host=['localhost:27017'], document_class=dict, tz_aware=False, connect=True), 'test_table'), 'contacts')

我确定我的 python 解释是错误的,这很清楚,但是我找不到正确的翻译,或者这在 python 中是否可行

最佳答案

我最终在这里找到了解决方案。希望它可以帮助其他人。

当然,当所有其他方法都失败时,请阅读文档...

.. note:: the order of keys in the command document is significant (the "verb" must come first), so commands which require multiple keys (e.g. findandmodify) should use an instance of :class:~bson.son.SON or a string and kwargs instead of a Python dict

同样有效的是 OrderedDict

query = [('collMod', 'contacts'),
('validator', {'phone': {'$type': 'string'}}),
('validationLevel', 'moderate')]
query = OrderedDict(query)
db.command(query)
{'ok': 1.0}

编辑:

Current Documentation以上来自哪里。请注意,这是在最初回答问题后添加的,因此文档已更改,但它应该仍然相关

关于python - 使用 pymongo 将验证器添加到 Mongodb 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46575083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com