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

MongoDB:pencarian pipa kinerja lambat dibandingkan dengan pencarian dasar

Masalahnya adalah ketika Anda melakukan lookup menggunakan pipeline dengan tahap pencocokan, maka indeks hanya akan digunakan untuk bidang yang cocok dengan $eq operator dan untuk indeks lainnya tidak akan digunakan.

Dan contoh yang Anda tentukan dengan pipa akan bekerja seperti ini ( lagi indeks tidak akan digunakan di sini karena tidak $eq )

db.matches.aggregate([
  {
    $lookup: {
      from: "players",
      let: {
        ids: {
          $map: {
            input: "$players",
            in: "$$this._id"
          }
        }
      },
      pipeline: [
        {
          $match: {
            $expr: {
              $in: [
                "$_id",
                "$$ids"
              ]
            }
          }
        }
      ],
      as: "players"
    }
  }
])

Karena pemain adalah array objek, maka perlu dipetakan ke array id terlebih dahulu

Taman Bermain MongoDB



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Batas luwak/offset dan hitung kueri

  2. 5 Cara Mendapatkan Jam dari Tanggal di MongoDB

  3. MongoDb:agregasi $lookup dengan penyaringan atas dokumen asing

  4. Cara mengatasi error :dbpath (/data/db/) tidak ada secara permanen di MongoDB

  5. Sumber sinkronisasi tidak memiliki kesalahan versi kompatibilitas fitur saat menambahkan anggota MongoDB 3.6 ke set replika 3.4