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

Sắp xếp một kết quả được đặt ngẫu nhiên trong mongo

Tôi phải đồng ý:điều dễ dàng nhất để làm là cài đặt một giá trị ngẫu nhiên vào tài liệu của bạn. Không nhất thiết phải có một phạm vi giá trị quá lớn - số lượng bạn chọn phụ thuộc vào kích thước kết quả mong đợi cho các truy vấn của bạn (1.000 - 1.000.000 số nguyên riêng biệt phải là đủ cho hầu hết các trường hợp).

Khi bạn chạy truy vấn của mình, đừng lo lắng về trường ngẫu nhiên - thay vào đó, hãy lập chỉ mục nó và sử dụng nó để sắp xếp. Vì không có sự tương ứng giữa số ngẫu nhiên và tài liệu, bạn sẽ nhận được kết quả khá ngẫu nhiên. Lưu ý rằng va chạm có thể sẽ dẫn đến việc tài liệu được trả lại theo thứ tự tự nhiên.

Trong khi đây chắc chắn là một cuộc tấn công, bạn có một lối thoát rất dễ dàng:với bản chất không có giản đồ của MongoDB, bạn có thể chỉ cần dừng việc bao gồm trường ngẫu nhiên khi có hỗ trợ sắp xếp ngẫu nhiên trong máy chủ. Nếu kích thước là một vấn đề, bạn có thể chạy một công việc hàng loạt để xóa trường khỏi tài liệu hiện có. Sẽ không có sự thay đổi đáng kể nào trong mã khách hàng của bạn nếu bạn thiết kế nó một cách cẩn thận.

Một lựa chọn thay thế sẽ là suy nghĩ rất lâu và khó về số lượng kết quả sẽ được ngẫu nhiên hóa và trả về cho một truy vấn nhất định. Có thể không quá tốn kém nếu chỉ xáo trộn mã khách hàng (tức là nếu bạn chỉ xem xét 10.000 bài đăng gần đây nhất).



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sử dụng chỉ mục ghép MongoDB

  2. Cách cài đặt MongoDB Community Edition trên Ubuntu

  3. Mongodb Healthcheck Từng bước

  4. cách tải xuống tệp được lưu trong gridFS bằng nodeJS

  5. Giới thiệu khái quát về khu vực MongoDB