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

$geoNear (pipa agregat) tidak mengembalikan dokumen yang benar

Ini sama sekali bukan kueri yang "sama". Ada perbedaan mencolok dalam menggunakan $match tahap, karena "pemfilteran" hanya dilakukan "setelah" "hasil terdekat" ditemukan. Ini berarti Anda berpotensi mengembalikan hasil "kurang" karena kriteria tidak dikeluarkan dalam kombinasi.

Itu sebabnya ada "query" opsi di $geoNear :

db.place.aggregate(
[
    { 
        $geoNear: { 
            spherical: true,
            near: { type: "Point", coordinates: [ 18.416145, -33.911973 ] },
            distanceField: "dist",
            query: {
                "schedule.key": { "$eq": "vo4lRN_Az0uwOkgBzOERyw" } 
            }
        }
    }
])

Sekarang itu pertanyaan yang sama. Atau akan sama persis jika Anda menggunakan $nearSphere . Sejak $near tidak memperhitungkan kelengkungan bumi dalam perhitungan jarak. $nearSphere dan $geoNear tidak.

Tapi poin utamanya adalah menggabungkan dengan "query" pilihan, karena itulah satu-satunya cara Anda benar-benar mendapatkan kedua kriteria yang dipertimbangkan dalam pencarian awal.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. C# serialisasi kelas kompleks MongoDB

  2. Apakah normal memiliki banyak koneksi antara node dan mongo saat menggunakan luwak?

  3. Memasukkan data ke array bersarang di mongodb

  4. Bagaimana cara menjumlahkan array dari berbagai dokumen dalam Agregasi MongoDB?

  5. Mengapa MongoDB tidak lagi mengizinkan penggunaan $set dan $unset dengan dokumen kosong?