J'ai une collection de vidéos:Mongoose: trier les résultats de la requête par moins occurences de mot dans la matrice
var VideoSchema = new mongoose.Schema({
url: {
type: String, required : true
},
orderBy: {
type: Number
},
views: [{
type: String
}]
});
« orderBy » me permet de définir l'ordre dans lequel je sers vidéos
« vues » est une liste de noms d'utilisateurs, ceux qui ont regardé la vidéo.
Je souhaite empêcher les utilisateurs de regarder à nouveau la même vidéo jusqu'à ce qu'ils aient regardé toutes les vidéos de la collection. Donc, je garde les noms des utilisateurs qui ont regardé la vidéo dans les «vues».
Maintenant, je demande des vidéos en utilisant 'trier'.
return this.find(videoQuery)
.skip(offset)
.limit(count || 10) // @todo 10 : param
.sort({views: {$meta: username}, 'orderBy': -1})
.exec();
Et je reçois le message d'erreur:
Can't canonicalize query: BadValue bad sort specification
Pouvez-vous aider?
Je crois que je ne peux utiliser que 'textScore' comme valeur pour $ meta, et donc il est inutile pour mon utilisation: les paramètres dans la requête ne sont pas ceux que je veux 'textScore', je veux juste le nom d'utilisateur. J'ai cherché des heures mais je n'arrive pas à trouver une solution sur mongodb docs. – user6403833