Tôi có một loạt tài liệu trong mongodb và tất cả đều có trường dấu thời gian có dấu thời gian được lưu trữ là "1404008160". Tôi muốn sắp xếp tất cả tài liệu trong bộ sưu tập này theo thứ tự desc. Tôi làm điều đó bằng cách:sắp xếp tài liệu mongodb theo dấu thời gian (theo thứ tự desc)
sort = [('timestamp', DESCENDING)]
collection.find(limit=10).sort(sort)
Tuy nhiên, tôi không nhận được kết quả được sắp xếp theo dấu thời gian theo thứ tự desc. Tôi nghĩ đó là vì dấu thời gian đang được coi là một trường int. Có một công việc xung quanh điều này mà không thay đổi kiểu dữ liệu của trường dấu thời gian. Tôi đã có rất nhiều dữ liệu trong bộ sưu tập này, do đó, tôi không muốn trải qua các rắc rối khi nhập/xuất, v.v.
Ngoài ra - tôi muốn giữ tải để phân loại thành mongod chứ không phải làm theo trình tự trong python .
Để rõ ràng: Dấu thời gian không cho biết thời điểm tài liệu được tạo và được lưu trữ dưới dạng chuỗi (ví dụ: "1404217646").
Xin cảm ơn trước.
Tôi giả sử bạn đã nhập hằng mà nếu không sẽ được biểu diễn dưới dạng 'pymongo.DESCENDING'. Nhưng thực sự đó chỉ là một hằng số cho '-1' để làm cho việc đọc dễ dàng hơn. Như một 'int' không nên quan trọng như các giá trị nên đặt hàng theo cách đó. Có thể là những chuỗi thực sự này? Có nghĩa là, những dấu ngoặc kép đó xuất hiện khi bạn nhìn vào dữ liệu trong trình bao? –
có - dấu ngoặc kép xuất hiện - vì vậy dấu thời gian được lưu trữ dưới dạng chuỗi .. và tôi đang tìm giải pháp thay thế mà không thay đổi kiểu dữ liệu của trường này trong tất cả tài liệu hiện có – jisu
Thực sự không phải là một giải pháp. Ngay cả khi chuỗi này vẫn nên sắp xếp chính xác như các giá trị là từ vựng. Trừ khi tất nhiên một số là số và một số là các chuỗi, điều này sẽ gây ra vấn đề. Nếu bạn đang tìm kiếm một cách để MongoDB "đúc" các giá trị, thì điều đó sẽ không xảy ra, bên ngoài chuỗi tấn công, nhưng điều đó sẽ không hiệu quả. Bạn thực sự cần phải thay đổi loại. Hình thức tốt nhất là ngày BSON, chỉ lưu trữ nội bộ giá trị dấu thời gian, nhưng sẽ tự động truyền dưới dạng ngày tháng trong chương trình của bạn. –