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.
- duplicates
-
SERVER-6852 Disallow empty path components in documents and queries
-
- Backlog
-