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

$ bỏ qua và $ giới hạn trong khuôn khổ tổng hợp

Vì đây là một truy vấn tìm kiếm văn bản mà chúng ta đang nói đến nên hình thức tối ưu nhất là sau:

db.collection.aggregate([
    { 
       "$match": {
               "$text": { "$search": "cake tea" }
    }
    },
    { "$sort": { "score": { "$meta": "textScore" } } },
    { "$limit": skip + limit },
    { "$skip": skip }
])

Sự hợp lý về dự trữ bộ nhớ từ các kết quả "sắp xếp" hàng đầu sẽ chỉ hoạt động trong "giới hạn" của chính nó và điều này sẽ không tối ưu cho bất kỳ thứ gì ngoài một vài "trang" dữ liệu hợp lý.

Ngoài mức tiêu thụ trí nhớ hợp lý, giai đoạn bổ sung có thể sẽ có tác động tiêu cực hơn là tích cực.

Đây thực sự là những hạn chế thực tế của khả năng tìm kiếm văn bản có sẵn cho MongoDB ở dạng hiện tại. Nhưng đối với bất kỳ thứ gì chi tiết hơn và đòi hỏi hiệu suất cao hơn, thì cũng giống như trường hợp của nhiều giải pháp SQL "toàn văn", bạn nên sử dụng giải pháp tìm kiếm văn bản "có mục đích" bên ngoài.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chuyển đổi ObjectID (Mongodb) thành Chuỗi trong JavaScript

  2. Làm cách nào để bạn định cấu hình Embedded MongDB để kiểm tra tích hợp trong ứng dụng Spring Boot?

  3. MongoDB qua Mongoose JS - findByID là gì?

  4. đếm số lần xuất hiện của mảng trên tất cả các tài liệu với mongo

  5. Các cụm MongoDB hiệu suất cao trên Amazon EC2