MongoDB $项目用于名称中包含空格的字段

时间:2015-01-09 13:31:03

标签: mongodb mongodb-query aggregation-framework

我有一个这样的文件:

{
    "_id" : NumberLong(111603),
    "max" : "Created At",
    "document" : {
        "_id" : ObjectId("54ad61013e016de5798c0582"),
        "testfield1" : "ISUZU (GM)",
        "Model - Range" : "N-series",
        "testfield2" : "N NQR 75",
    }
}

我想汇总包含大量这些文件的集合。我在$ project步骤中遇到了“模型 - 范围”的问题。 目前我正在使用

db.AE.aggregate([
    {"$project":{
        "Make":"$document.testfield1",
        "Model":"$document.testfield2",
        "_id":0, 
        "Group": "$document['Model - Range']"
     }}
]);

但由于某种原因,MongoDB完全忽略了Group字段,只添加了另外两个字段。

在MongoDB聚合框架中进行投影时,有没有办法解决其中包含空格/特殊字符的字段?

1 个答案:

答案 0 :(得分:4)

您可以对该字段使用普通的点表示法:

db.AE.aggregate([
    {"$project":{
        "Make":"$document.testfield1",
        "Model":"$document.testfield2",
        "_id":0, 
        "Group": "$document.Model - Range"
     }}
]);

但我同意Neil的意见,如果可能的话,应避免使用带有空格的字段名称。