您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MongoDB不允许使用“。” 在关键

MongoDB不允许使用“。” 在关键

您可以check_keys根据来源将其设置为False :

 test.insert(d,check_keys=False)


 def insert(self, doc_or_docs, manipulate=True,
           safe=None, check_keys=True, continue_on_error=False, **kwargs):

它确实可以工作:

In [28]: d = {'.aaa' : '.bbb'}

In [29]: test.insert(d,check_keys=False)
Out[29]: ObjectId('54ea604bf9664e211e8ed4e6')

该文档字符串指出:

* check_keys(可选):如果True检查键是否以’$’开头或包含’。’,则~pymongo.errors.InvalidName在两种情况下都提高:class :。

你似乎可以分开使用任何字符只从两个 $.因此导致下划线或任何其他字符会被罚款和可能是一个更好的选择。

常见问题解答中有关于转义的信息

在某些情况下,您可能希望使用用户提供的密钥来构建BSON对象。在这种情况下,密钥将需要替换保留的$和。字符。任何字符都足够,但是请考虑使用Unicode全角等效项:U + FF04(即“ $”)和U + FF0E(即“。”)。

点号常见问题解释了为什么使用.它不是一个好主意:

MongoDB使用点表示法来访问数组的元素并访问嵌入式文档的字段。要通过从零开始的索引位置访问数组的元素,请将数组名称与点(。)和从零开始的索引位置连接起来,并用引号引起来:

mongodb 2022/1/1 18:29:53 有467人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶