2013-05-25 13 views
9

Kịch bản: Xem xét Tôi gặp một bộ sưu tập được gọi là MyCollection, với các dữ liệu sau đây:Cách truy vấn phạm vi ngày trên bộ sưu tập MongoDB trong đó ngày ISO được lưu trữ trong trường chuỗi?

{ 
    "_id" : 'MyUniqueID_01' 
    "CreatedTime" : "2013-12-01T14:35:00Z", 
    "LastModifiedTime" : "2013-12-01T13:25:00Z" 
} 

Bây giờ tôi muốn truy vấn cơ sở dữ liệu MongoDB nơi các loại nêu trên dữ liệu là trong số lượng lớn các tài liệu. Và truy vấn của tôi là dựa trên phạm vi ngày tức là sử dụng $gt, $gte, $lt & $lte

Vì vậy, câu hỏi của tôi có thể cái gì đó như:

db.MyCollection.find({ 'CreatedTime': {$gt: '2013-05-25T09:29:40.572Z'}}) 

Xét các ví dụ trên các kết quả dự kiến ​​là, truy vấn có để có được một tài liệu (từ "Thời gian tạo": "2013-12-01T14: 35: 00Z" lớn hơn giá trị được chuyển trong truy vấn '2013-05-25T09: 29: 40.572Z'); trong khi không, vấn đề là trường CreatedTime ở định dạng chuỗi.

Câu hỏi: Có cách nào để tôi có thể nhận được kết quả mong đợi hoàn hảo mà không thay đổi loại trường chuỗi cho đến nay không?

+1

Chuỗi thời gian ngày ISO 8601 như thế này sẽ hoạt động tốt cho các truy vấn phạm vi ngày. Đó là một trong những ưu điểm của định dạng. Truy vấn ví dụ của bạn trả về tài liệu ví dụ của bạn, như mong đợi. – JohnnyHK

+0

@JohnnyHK: Cảm ơn ... Chính xác Nó hoạt động trên DB cục bộ của tôi nhưng cùng một truy vấn không làm được dự kiến ​​trên máy chủ trực tiếp .. Có phụ thuộc phiên bản nào không? –

+0

@AmolMKulkarni Vì tò mò, bạn có tìm hiểu tại sao nó không hoạt động trên máy chủ không? Tôi đang làm việc trên truy vấn giữa các phạm vi thời gian và đi qua điều này trong khi tìm kiếm. – Raghuveer

Trả lời

9

Bạn có thể thực hiện các truy vấn chính xác như bạn đã làm trong ví dụ.

Thứ tự chuỗi nhất quán và sẽ cung cấp cho bạn mối quan hệ chính xác mà bạn muốn.

+3

Có, nhưng tôi cũng sẽ thêm rằng chuỗi truy vấn phải sử dụng cùng một hậu tố múi giờ như tập dữ liệu (ví dụ, ví dụ của OP ở dạng ISO 8601 UTC (với hậu tố 'Z'), do đó chuỗi truy vấn cũng phải ở dạng đó. –

Các vấn đề liên quan