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

Mongoose Query за сортиране на основния документ и поддокумента по определено поле

Понастоящем сортирането не е възможно директно в обектите на масива,

Можете да направите една от двете опции,

  • ако получавате данни от търсене, използвайте търсене с конвейер това ще позволи да се използва $sort тръбопровод в съвпадащи документи
  • $развийте масива => $сортирайте го => отново $групирайте го в масив, Вижте SO Отговор

тук използвате $lookup , вместо просто търсене можете да използвате "$lookup с тръбопровод".

  {
    $lookup: {
      from: "tags",
      as: "tags",
      let: { id: "$_id" },
      pipeline: [
        {
          $match: {
            $expr: { $eq: ["$$id", "$tag_type"] }
          }
        },
        {
          $sort: { order: -1 }
        }
      ]
    }
  },

Playground

Второ възможно решение:Playground




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb заявка по подполе

  2. Mongoose find(), как да получите достъп до документите с резултати?

  3. За let, не се увеличава, ако има същия елемент в масива

  4. Защо не мога да актуализирам до най-новата MongoDB с Homebrew?

  5. Как да оптимизирате производителността на MongoDB