当我需要在MongoDB中运行mapReduce时

时间:2016-05-17 13:00:52

标签: mongodb mapreduce

我是MongoDB的新手。

我已在mapReduce集合上创建Person以对cities进行分组。

db.Person.find()
[{
    name: 'Bob',
    addresses: [
        {
            street: 'Vegas Street',
            neighborhood: {
                name: 'Center',
                city: {
                    name: 'Springfield'
                }
            }
        }, {
           .....
        }
    ]
}, {
   ....
}]

这是我的mapReduce

db.Person.mapReduce(function() {
    for (var i = 0; i < this.address.length-1; i++) {
        var address = this.address[i];
        emit(address.neighborhood.city.name, 1);
    }
}, function(k, v) {
    return v.length;
}, { out: 'City' });

然后我用它来列出我的城市:

db.City.find().sort({'_id:', 1})
[{
    _id: 'Springfield',
    value: 3
}, { 
    _id: 'City B',
    value: 2
}, { 
    ...
}]

我的问题是关于City数据,每次在mapReduce集合中插入,更新或删除时,我都需要运行Person,否则它会自动运行?

0 个答案:

没有答案