У меня много трудностей в решении этой проблемы mongodb (mongoose).
Существует эта схема "Рекомендовать" (имя пользователя, roomId, ll и date), а ее коллекция содержит рекомендации пользователя.
Мне нужно получить список наиболее рекомендуемых номеров (по номеру). Ниже приведена схема и мое проверенное решение с запросом мангуста.
var recommendSchema = mongoose.Schema({
username: String,
roomId: String,
ll: { type: { type: String }, coordinates: [ ] },
date: Date
})
recommendSchema.index({ ll: '2dsphere' });
var Recommend = mongoose.model('Recommend', recommendSchema);
Recommend.aggregate(
{
$group:
{
_id: '$roomId',
recommendCount: { $sum: 1 }
}
},
function (err, res) {
if (err) return handleError(err);
var resultSet = res.sort({'recommendCount': 'desc'});
}
);