2015-09-17 2 views
0

Я хотел бы знать, как запросить на основе ниже условия в MongoDB. скажем, у меня есть поле в коллекции под названием created_at, и это ISODate() сейчас я хочу получить все данные, такие как ISODate() + 1 Hour больше current time. как это сделать ? Я попытался найти в Интернете. Я не понимаю, как искать.Условные запросы MongoDB с использованием ISODate

{ 
    "_id" : ObjectId("55c48b37f09e091c1100002a"), 
    "user_id" : 1, 
    "flagged" : 0, 
    "flag_count" : 0, 
    "likes" : [ 
     1, 
     3, 
     7 
    ], 
    "dislikes" : [], 
    "img_url" : "something :D", 
    "place_id" : "55ba017ef09e098c1500002d", 
    "updated_at" : ISODate("2015-08-28T09:30:44.000Z"), 
    "created_at" : ISODate("2015-08-07T10:40:55.000Z"), 
    "moderated" : true 
} 
+4

http://stackoverflow.com/questions/18233945/query-to-get-last-x-minutes-data-with-mongodb Это сделает db. [Yourcollection] .find ({created_at: {$ gt: new Date (ISODate(). GetTime() - 1000 * 3600 * 1)}}); – piscator

+0

@piscator спасибо :) это сработало. есть дополнительная проблема. Я запускаю его в PHP. позвольте мне разобраться. –

ответ

0

Создать ISODate с одного часа меньше и использовать $ GT

+0

Нет, это невозможно, потому что 1 час не является постоянной переменной. Его можно изменить на несколько часов. –

+0

db.collection.find ({created_at: {$ gt: ISODate ("2015-08-07T9: 40: 55.000Z")}}) должен соответствовать вашему документу –

+0

Это был пример структуры. Позвольте мне объяснить больше. пользователь поставил что-то на 24.09.2015 Я положил интервал как 24 часа. теперь он должен фильтроваться в моем запросе, если он на 24 часа старше. –

Смежные вопросы