MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Mongodb условно сортиране

Създайте виртуално поле, което представлява стойност за записите, които трябва да се показват в горната част на списъка, след което сортирайте записите въз основа на това поле. Можете да използвате $addFields и $cond оператори, които да го постигнат.

Изпълнението би било нещо подобно:

// ...
{
  "$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,
  },
},
// ...

Моля, обърнете внимание, че $addField работят само в MongoDB 3.4 и по-нататък. също кодът на фрагментите може да съдържа грешки.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB без значение за главни и малки букви заявка за текст със скоби

  2. $addFields, когато не е намерено $match

  3. Топ 5 предимства на споделения MongoDB хостинг

  4. Как да създам първия потребител на mongodb с разрешено оторизиране?

  5. MongoDB изберете къде в масива от _id?