我是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
,否则它会自动运行?