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

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

Имайки предвид следните данни:

db.col.save({ a: "111"})
db.col.save({ a: "112"})
db.col.save({ a: "113"})
db.col.save({ a: "114"})

можете да използвате $match на Aggregation Framework за филтриране на всички елементи, които не присъстват в посочения масив и $addFields с $indexOfArray за да получите index Имот. След това можете да $sort от това свойство и използвайте $project за премахване на временно поле. Опитайте:

db.col.aggregate([
    {
        $match: { a: { $in: ["112", "111", "113"] } }
    },
    {
        $addFields: {
            index: { $indexOfArray: [ ["112", "111", "113"], "$a" ] }
        }
    },
    {
        $sort: { index: 1 }
    },
    {
        $project: { index: 0, _id: 0 }
    }
])

Изходи:

{ "a" : "112" }
{ "a" : "111" }
{ "a" : "113" }



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb заявка бавна с точкова нотация

  2. new Date() в сборния $project

  3. Управление на журналирането в MongoDB

  4. Възел Mongo REST Service Post

  5. MongoDB - Вмъкнете, ако не съществува, в противен случай пропуснете