MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Menyortir hasil kueri berdasarkan urutan item dalam larik kondisi yang disediakan di Mongoose

Mempertimbangkan data berikut:

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

Anda dapat menggunakan $match dari Kerangka Agregasi untuk memfilter semua item yang tidak ada dalam larik tertentu dan $addFields dengan $indexOfArray untuk mendapatkan index Properti. Kemudian Anda dapat $sort oleh properti itu dan gunakan $project untuk menghapus bidang sementara. Coba:

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

Keluaran:

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



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengotomatiskan dan Mengelola MongoDB di Cloud

  2. Render Gambar Disimpan di Mongo (GridFS) dengan Node + Jade + Express

  3. ArgumentException:Kata kunci 'mongodb+srv://test:[email protected]' tidak valid di MongoDB + Unity2D - Live MongoDB tidak terhubung

  4. Menginstal MongoDB dengan Homebrew

  5. Doctrine ODM / MongoDB tidak mencoba lagi kueri?