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

MongoDB:Menggabungkan Pencarian Teks dan Kueri Geospasial

Mongo DB sendiri tidak mendukung pencarian teks dan geo secara bersamaan.Lihat ini

Tetapi Anda dapat menggabungkan kueri dan dapat mencapai hasilnya

Solusi

  1. regex + dekat
const aggregate=YourCollection.aggregation()
aggregate.near({
    near:coord,
    includeLocs: "loc",
    distanceField: "distance",
    maxDistance: distance
});
aggregate.match({name:{$regex:keyword,$options: 'i'}})
aggregate.exec(function(err,yourDocuments){
    //your smart code
}) 
  1. Penelusuran teks + regex

    var aggregate=YourCollection.aggregate();
    var match= {
      latitude: { $lt: yourCurrentLatitude+maxDistance, $gt: yourCurrentLatitude-maxDistance },
      longitude: { $lt: yourCurrentLongitude+maxDistance, $gt: yourCurrentLongitude-maxDistance },
      {$text:{$search:keyword}}
    };
    
    aggregate.match(match).exec(function(err,yourDocuments){//your smart code})
    
  2. Mapreduce + ( Penelusuran teks Atau regex )

YourCollection.mapReduce(map, reduce, {out: {inline:1, query : yourFirstQuery}}, function(err, yourNewCollection) {
// Mapreduce returns the temporary collection with the results
    collection.find(yourNewQuery, function(err, result) {
      //your awsome code
    });
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Penomoran data mongo musim semi

  2. Mengoptimalkan Lingkungan Linux Anda untuk MongoDB

  3. Cara menjumlahkan nilai kunci di semua dokumen dalam koleksi MongoDB

  4. Tidak dapat memutakhirkan sharded mongoDB atau menghentikan penyeimbang

  5. Mendapatkan data bersarang dari MongoDB ke dalam bingkai data Pandas