MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Sortowanie warunkowe Mongodb

Utwórz wirtualne pole, które reprezentuje wartość wpisów, które powinny być wyświetlane na górze listy, a następnie posortuj wpisy na podstawie tego pola. Możesz użyć $addFields i $cond operatorów, aby to osiągnąć.

Implementacja wyglądałaby mniej więcej tak:

// ...
{
  "$addFields": {
    "isFeaturedSort": {
      "$cond": {
        "if": {
          "$and": {
            "publishDate": {
              "$gte": ISODate("2019-03-14T00:00:00.000Z"),
            },
            "$eq": ["isFeatured", true],
          },
        },
        "then": 1,
        "else": 0,
      },
    },
  },
},
{
  "$sort": {
    "isFeaturedSort": -1, // changed
    "refreshes.refreshAt": -1,
    "publishDate": -1,
    "_id": -1,
  },
},
// ...

Zwróć uwagę, że $addField działa tylko w MongoDB 3.4 i dalej. Również fragmenty kodu mogą zawierać błędy.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wstaw element do zagnieżdżonej tablicy w Mongodb

  2. update_attributes zwraca zawsze prawdę, nawet jeśli zagnieżdżone atrybuty są nieprawidłowe

  3. Mongodb Query Aby wybrać rekordy posiadające podany klucz

  4. MongoDB $sum Operator potoku agregacji

  5. Dlaczego zestaw replik mongodb wymaga nieparzystej liczby węzłów głosujących?