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

Abi*_*vam 5 mongodb mongodb-query

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

ser*_*iuz 6

字段名称不能包含点(即。)或空字符,并且它们不能以美元符号(即$)开头。


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

不建议这样做,但是您可以尝试以下操作:

dollar = "\uFF04";
?
dot = "\uFF0E"
?

db.test.save({[dollar]:dot})
WriteResult({ "nInserted" : 1 })
db.test.save({[dot]:dollar})
WriteResult({ "nInserted" : 1 })

db.test.find()
{ "_id" : ObjectId("58256b0f9934a5d1c696c456"), "?" : "?" }
{ "_id" : ObjectId("58256d359934a5d1c696c457"), "?" : "?" }
Run Code Online (Sandbox Code Playgroud)