Details
Description
Situation: some MongoDB documents have subdocuments that contain an empty key, e.g. (I stripped ObjectIDs to make the code look nicer):
{
|
"_id" : ObjectId("..."),
|
"stats" :
|
{
|
"violations" : 0,
|
"cost" : 170,
|
},
|
"parameters" :
|
{
|
"" : "../instances/comp/comp20.ectt",
|
"repetition" : 29,
|
"time" : 600000
|
},
|
"batch" : ObjectId("..."),
|
"system" : "Linux 3.5.0-27-generic",
|
"host" : "host3",
|
"date_started" : ISODate("2013-05-14T16:46:46.788Z"),
|
"date_stopped" : ISODate("2013-05-14T16:56:48.483Z"),
|
"copy" : false
|
}
|
The problem is line:
"" : "../instances/comp/comp20.ectt"
it is impossible to get back the value of the field. Querying doesn't work:
db.experiments.find(
{"batch": ObjectId("...")},
{ "parameters.": 1 })
gets the full content of the parameters subdocument. (My guess is that "." is probably ignored if followed by an empty selector.) From the JSON specification (15.12.*) it looks like empty keys are allowed.
Moreover, renaming doesn't work either, for similar reasons.
Attachments
Issue Links
- duplicates
-
SERVER-6852 Disallow empty path components in documents and queries
-
- Backlog
-