相关疑难解决方法(0)

如何在字段名称中使用点?

如何在字段名称中使用点?

我在示例中看到错误:

db.test2.insert({ "a.a" : "b" })

can't have . in field names [a.a]
Run Code Online (Sandbox Code Playgroud)

mongodb

25
推荐指数
2
解决办法
3万
查看次数

MongoDB不允许使用'.' 在关键

我正在尝试保存包含特殊字符''的字典.在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'保存到数据库中?

任何想法如何处理问题?

python mongodb

18
推荐指数
1
解决办法
2万
查看次数

Java中的Unicode转义语法

在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)

java unicode

11
推荐指数
2
解决办法
1万
查看次数

MongoDB插入带有$的键(美元)

我正在尝试使用一个json对象插入一个集合,该对象包含一个以' $' 开头的键(例如:' $count')。我阅读了mongodb v3.0 常见问题解答,他们提到这不是关键。是否有任何回旋方式插入这样的密钥并将其取回?

mongodb mongodb-query

5
推荐指数
1
解决办法
3028
查看次数

标签 统计

mongodb ×3

java ×1

mongodb-query ×1

python ×1

unicode ×1