MongoDb:密钥名称中的空格?

时间:2012-11-10 22:38:50

标签: mongodb mapreduce

我遇到了一个问题,导致我头撞墙几天。

考虑以下文件:

{
    '_id': '5d7de43ac7baaa0ff2c4ae2bd000518a',
    'Some Complex Name': {
        'data': {
            'simpleKey': [
                {
                    'name': 'Bob',
                    'age': 30
                },
                {
                    'name': 'Sam',
                    'age': 31
                },
                {
                    'name': 'George',
                    'age': 20
                }
            ]
        }
    }
}

在我对JavaScript的理解中,我了解到我将以下列方式引用“Some Complex Name”(在map函数的范围内):

var stuff = this['Some Complex Name']

从那时起,我将能够使用以下内容访问名称:

var names = [];
for (var i in this['Some Complex Name'].data.simpleKey) {
    names.push(this['Some Complex Name'].data.simpleKey[i].name);
}
emit(this._id, names);

不幸的是,我在这方面错了,因为我收到了这样的错误

        "errmsg" : "exception: map invoke failed: JS Error: TypeError: this['Some Complex Name'] has no properties nofile_b:2"

因此,我的问题是:我如何/正确/访问“某些复杂名称”键?

奖金将是一些文件来解释这一点。

谢谢!

1 个答案:

答案 0 :(得分:0)

实际上,我刚刚找到答案,这正是我所怀疑的。

MongoDB/PyMongo: How to use dot notation in a Map function?是同一个问题,事实证明我需要过滤我的查询以确保我正在使用的文档中存在Some Complex Name。这是通过querymapReduce完成的。