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

$ geoNear (đường dẫn tổng hợp) không trả lại tài liệu chính xác

Nó hoàn toàn không phải là một truy vấn "giống nhau". Có sự khác biệt rõ ràng trong việc sử dụng $ match riêng biệt giai đoạn, vì quá trình "lọc" chỉ được thực hiện "sau khi" tìm thấy "các địa chỉ gần nhất". Điều này có nghĩa là bạn có khả năng trả về kết quả "ít hơn" vì các tiêu chí không được đưa ra kết hợp.

Đó là lý do tại sao có "query" trong $ geoNear :

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

Bây giờ đó là cùng một truy vấn. Hoặc nó sẽ giống hệt như vậy nếu bạn sử dụng $ nearSphere . Vì $ near không tính đến độ cong của trái đất trong các phép đo khoảng cách. $ nearSphere $ geoNear không.

Nhưng điểm chính là kết hợp với "query" tùy chọn, vì đó là cách duy nhất bạn thực sự nhận được cả hai tiêu chí được xem xét trong lần tìm kiếm ban đầu.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. lưu trữ toàn bộ văn bản từ tệp txt vào mongodb

  2. pymongo + gevent:ném cho tôi một quả chuối và chỉ Monkey_patch?

  3. Có thể kết nối với MongoDB cục bộ bằng Phi tiêu rung không?

  4. Cách sắp xếp Tổng hợp MongoDB với đối sánh, sắp xếp và giới hạn

  5. Kết nối bị vùng chứa Docker từ chối