Mam kolekcję Mongo wiadomości, które wygląda tak:Mongo porządek na obliczoną stan
{
'recipients': [],
'unRead': [],
'content': 'Text'
}
odbiorców jest tablicą identyfikatory użytkowników i nieprzeczytanych jest tablicą wszystkich użytkowników, którzy jeszcze nie otworzono wiadomość. Że działa zgodnie z przeznaczeniem, ale muszę zapytać listę wszystkich wiadomości tak, że zwraca pierwsze 20 wyników, ustalania priorytetów nieprzeczytane te pierwsze, coś takiego:
db.messages.find({recipients: {$elemMatch: userID} })
.sort({unRead: {$elemMatch: userID}})
.limit(20)
Ale to nie działa. Jaki jest najlepszy sposób ustalania priorytetów wyników na podstawie tego, czy pasują do określonych kryteriów?
To działało idealnie. Dziękuję Ci! Jedyny komentarz, jaki zrobię, to fakt, że Mongo popełnił błąd, dopóki nie zmieniłem $ setIsSubSet na $ setIsSubset. – beatniknight
@beatniknight Typowe mnie. Link do dokumentacji miał rację, ale mój mózg CamelCase ciągle mówi, że to dwa słowa i ciągle je pisze. –