Bạn không cần bất kỳ gói này. Ngày là một ngày tháng :
var zeroth = {$or:[ {start: new Date(), {users:{$size:2}} ]};
Tất nhiên bây giờ nếu những "ngày" đó trong tài liệu của bạn thực sự là "chuỗi" và không phải là ngày thích hợp loại thì đó là vấn đề của bạn. Và những gì bạn thực sự việc cần làm là sửa các giá trị đó để chúng là ngày thực.
Điều này áp dụng cho bất kỳ triển khai ngôn ngữ, nơi bạn sẽ làm việc với loại "ngày tháng" bản địa và để trình điều khiển thực hiện chuyển đổi cho bạn.
Cách xác định trường có phải là một chuỗi hay không
Chà, sự khác biệt rõ ràng là khi bạn nhìn vào một tài liệu trong trình bao mongo, nếu đó là kiểu ngày tháng BSON thực thì nó sẽ giống như thế này:
"start": ISODate("2014-03-31T08:47:48.946Z"),
Nếu điều đó không đủ rõ ràng thì có $type
toán tử mà bạn có thể sử dụng trong một truy vấn như sau:
db.collection.find({ "start": { "$type": 2 } }).count()
Nó cũng không MongoDB đang thực hiện điều này nếu nó là một chuỗi, nhưng triển khai khá tệ trong ứng dụng hoặc quá trình nhập chịu trách nhiệm tạo ra điều này. Đó là tất cả những gì các điểm được đưa ra trong phản hồi ban đầu.