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

Pipa agregasi $geoNear MongoDB (menggunakan opsi kueri dan menggunakan operasi pipa $match) tidak memberikan hasil yang berbeda

Beberapa asumsi:-
1. Asumsikan ada 300 record yang cocok berdasarkan lokasi.
2. Asumsikan set pertama dari 100 hasil tidak memiliki tag pizza. 200 dokumen lainnya (101 hingga 300) memiliki tag pizza

Kueri 1:-

  • Ada 2 operasi pipeline $geoNear dan $match
  • Output dari operasi pipeline $geoNear adalah input ke operasi $matchpipeline
  • $geoNear menemukan maksimal 100 hasil (batas yang telah kami tentukan) berdasarkan lokasi yang diurutkan berdasarkan jarak terdekat hingga jauh. (Perhatikan di sini bahwa 100 hasil yang dikembalikan murni berdasarkan lokasi. Jadi 100 hasil ini tidak mengandung dokumen apa pun dengan tag "pizza")
  • 100 hasil ini dikirim ke operasi pipeline berikutnya $match dari mana pemfilteran terjadi. Tapi karena set pertama 100 hasil tidak memiliki tag pizza, outputnya kosong

Kueri 2:-

  • Hanya ada 1 operasi pipa $geoNear
  • Ada bidang kueri yang disertakan dalam operasi pipa $geoNear$geoNear menemukan maksimal 100 hasil (batas yang telah kami tentukan) berdasarkan lokasi yang diurutkan menurut jarak terdekat hingga jauh dan kueritag=pizza
  • Sekarang di sini hasil dari 101 hingga 200 dikembalikan sebagai output karena kueri disertakan dalam operasi pipeline $geoNear. Jadi kalimat sederhana yang kami katakan, temukan semua dokumen dengan lokasi [x,y] withtag=pizza.

P.S :- Tahap pipa $group ditambahkan hanya untuk mendapatkan hitungan dan karenanya belum menulis tentang hal itu dalam penjelasannya



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Fungsi Agregat MongoDB di C #

  2. Bagaimana cara $mengatur item sub-sub-array di MongoDB

  3. Mengapa collection.find() saya tidak berfungsi di meteor tetapi berfungsi di robomongo?

  4. Spring Data MongoDB:Proyeksi dan Agregasi

  5. Driver Node Asli MongoDB:Jelaskan Rusak?