MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB:Kết hợp Tìm kiếm Văn bản và Truy vấn Không gian địa lý

Bản thân Mongo DB không hỗ trợ đồng thời tìm kiếm văn bản và địa lý. Tham khảo phần này

Nhưng bạn có thể kết hợp truy vấn và có thể đạt được kết quả

Giải pháp

  1. regex + gần
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. Tìm kiếm văn bản + 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 + ( Tìm kiếm văn bản Hoặc 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. Spring Boot thiết lập kho lưu trữ MongoDB

  2. Làm cách nào để bạn tham gia vào một mảng trong mongoose (mongodb) với node.js?

  3. Lưu trữ tệp PDF trong DB với Flask-admin

  4. mongo-go-driver:bộ lọc truy vấn OR / AND lồng nhau

  5. không thể chạy mongo-connector