1

我有一个问题导致我把头撞在墙上好几天。

考虑以下文档:

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

在我对 JavaScript 的理解中,我了解到我会以以下方式(在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"

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

奖励将是一些文档来解释这一点。

谢谢!

4

1 回答 1

0

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

MongoDB/PyMongo:如何在 Map 函数中使用点表示法?是同样的问题,事实证明我需要过滤我的查询以确保Some Complex Name存在于我正在使用的文档中。这是通过queryto完成的mapReduce

于 2012-11-10T23:03:28.193 回答