2015-05-20 4 views
0

Все:Как получить Handle Диапазон дат в MongoDB

Im довольно новый для MongoDB, Интересно, если я хочу, чтобы найти документ по диапазону дат, как я могу это сделать? Итак, вопрос будет:

[1] Как я могу вставить данные?

Моего объект данных, как:

{ 
    value: 10, 
    date: "20150121" 
} 

Я хочу знать, как я могу препроцессировать поле даты, прежде чем вставить его

[2] Как я могу найти определенную docuemnts диапазона?

Я имею в виду, используя что-то вроде:

db.collection.find({ date: { $gt: date1, $lt: date2 } }); 

Но я не уверен.

Thanks

+0

Для (1), см https://stackoverflow.com/questions/3778428/best-way-to-store-date-time-in-mongodb и https://stackoverflow.com/questions/ Например, 6764821/what-is-the-best-way-to-store-date-in-mongodb. Для (2) да, вы можете использовать операторы сравнения - например. см. https://stackoverflow.com/questions/8835757/return-query-based-on-date и документацию MongoDB по адресу http://docs.mongodb.org/manual/reference/operator/query/ – DNA

+0

@ DNA благодарит меня посмотрим. – Kuan

ответ

0

Попробуйте. Это будет работать. Вы, скорее всего, захотите придать значение вашей даты как целому числу вместо строки, как показано.

> db.datesort.insert({value:NumberInt(10),date:NumberInt(20150121)}); 
> db.datesort.insert({value:NumberInt(20),date:NumberInt(20150122)}); 
> db.datesort.insert({value:NumberInt(30),date:NumberInt(20150123)}); 
> db.datesort.insert({value:NumberInt(40),date:NumberInt(20150124)}); 
> db.datesort.insert({value:NumberInt(50),date:NumberInt(20150125)}); 

> db.datesort.find({date:{$gt:20150121,$lt:20150124}}); 
{ "_id" : ObjectId("555d0c23f4384ca8c403f441"), "value" : 20, "date" : 20150122 } 
{ "_id" : ObjectId("555d0c2bf4384ca8c403f442"), "value" : 30, "date" : 2015} 
Смежные вопросы