如何在字段名称中使用点?
我在示例中看到错误:
db.test2.insert({ "a.a" : "b" })
can't have . in field names [a.a]
Run Code Online (Sandbox Code Playgroud) 我正在尝试保存包含特殊字符''的字典.在MongoDB的关键部分.错误如下所示,其中明确指出密钥不得包含特殊字符'.'.
>>> import pymongo
>>> client = pymongo.MongoClient('localhost')
>>> db = client['malware']
>>> test = db['test']
>>> d = {'.aaa' : '.bbb'}
>>> test.insert(d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/site-packages/pymongo/collection.py", line 362, in insert
self.database.connection)
bson.errors.InvalidDocument: key '.aaa' must not contain '.'
Run Code Online (Sandbox Code Playgroud)
但我目前的信息包含'.' 在数据的关键部分,我需要存储到MongoDB.目前我只是删除'.' 从字符串中,另一个选项是用'_'或其他特殊字符替换它.
然而,所有这些都会导致信息丢失,因为如果我有一个密钥'.aaa'和一个密钥' aaa'并且我转换'.' 进入' '然后键完全一样,我丢失了一些信息.为什么Mongo不允许我将'.aaa'保存到数据库中?
任何想法如何处理问题?
在Java中,我了解到以下语法可用于提及不在键盘上的Unicode字符(例如,非ASCII字符):
(\u)(u)*(HexDigit)(HexDigit)(HexDigit)(HexDigit)
Run Code Online (Sandbox Code Playgroud)
我的问题是:上述语法中(u)*的目的是什么?
我理解的一个用例代表Java中的Yen符号:
char ch = '\u00A5';
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用一个json对象插入一个集合,该对象包含一个以' $
' 开头的键(例如:' $count
')。我阅读了mongodb v3.0 常见问题解答,他们提到这不是关键。是否有任何回旋方式插入这样的密钥并将其取回?