首页 > 解决方案 > Mongoose 或 JavaScript 将结果按相同字段分组到数组中

问题描述

我目前正在寻找从 mongoDB 获取结果并将它们排序到按同一字段分组的数组中的最有效方法。

我的架构如下

var EventSchema = new mongoose.Schema({
    title:String,
    description:String,
    location:{lng:Number, lat:Number},  
    date:Date,
    place_id:String,
    ....
});

我将所有事件放入一个名为的数组all_events中,并希望按 place_id 将它们分组到数组中。我已经尝试过这个(如下)并且效果很好,但我想知道他们是否是在猫鼬中这样做的一种方法,或者是在 JavaScript 中更有效的方法。

    let included_places = [];
    let places_events=[];

    for(let i=0; i<all_events.length; i++){
        if(included_places.indexOf(all_events[i].place_id)<0) included_places.push(all_events[i].place_id);
    }
    for(let i=0; i<included_places.length; i++){
        let the_events = all_events.filter(a=>a.place_id==included_places[i]);
        places_events[i] = the_events;
    }

标签: javascriptmongodbmongoose

解决方案


推荐阅读