У меня есть коллекция видео:Mongoose: сортировать результаты запросов по мере вхождений слова в массиве
var VideoSchema = new mongoose.Schema({
url: {
type: String, required : true
},
orderBy: {
type: Number
},
views: [{
type: String
}]
});
«OrderBy» позволяет мне определить порядок, в котором я служу видео
«вид» является список имен пользователей, тех, кто просмотрел видео.
Я хочу, чтобы пользователи не просматривали снова одно и то же видео, пока не просмотрели все видео в коллекции. Поэтому я сохраняю имена пользователей, которые смотрели видео внутри «просмотров».
Теперь я запрашиваю видео, используя 'sort'.
return this.find(videoQuery)
.skip(offset)
.limit(count || 10) // @todo 10 : param
.sort({views: {$meta: username}, 'orderBy': -1})
.exec();
И я получаю сообщение об ошибке:
Can't canonicalize query: BadValue bad sort specification
Можете ли вы помочь?
Я считаю, что я могу использовать только «textScore» как значение для $ meta, и поэтому он бесполезен для моего использования: параметры в запросе не те, которые я хочу «textScore», я просто хочу имя пользователя. Я искал часы, но я не могу найти решение на документах mongodb. – user6403833