2014-12-26 2 views
0

У нас есть огромный MongoDB с 70 миллионами записей на сегодняшний день. каждый день в эту базу данных будет добавлено почти 1 миллион записей. каждый документ в сборнике будет иметь следующие данные:Дата запроса Quo MongoDB Collection

{ 
    "_id" : ObjectId("5447f506e4b081e36588b006"),  
    "time" : "2014-10-22T15:16:32.000Z", 
    "created" : "2014-10-22T15:24:39.847Z", 
    "type" : "system", 
    "upload" : "2" 
} 

Каждый день мы должны запускать некоторые задания для обработки данных ежедневно. когда мы запускаем задания, мы сохраним последние данные документа в нашем журнале состояния. Когда мы в следующий раз приступим к работе, нам придется получить созданное время из этой записи, извлечь все документы после этой даты из MongoDB. я получил ответ на письменный запрос на извлечение документов, которые не обрабатываются, то есть извлечение записей после даты, сохраненной в журнале. Может ли кто-нибудь помочь написать запрос MongoDB для этого?

ответ

1

предполагая, что у вас есть переменная называется $date:

db.collection.find({created: {"$gt": $date}}) 

http://docs.mongodb.org/manual/reference/operator/query/gt/

+1

как примечание стороны, поскольку [ObjectIds сделаны из меток времени] (http://docs.mongodb.org/manual/reference/object-id /), вы можете полностью удалить поле 'created' и действовать непосредственно на' _id' –

+0

db.collection.find ({'created': {'$ lt': '2014-10-22T15: 17 : 02.000Z '}}) .. Я пробовал это, но не возвращал никаких результатов. – Dinesh

+0

Я пробовал использовать _id. Он работает, и он очень быстрый по сравнению с созданными полевыми запросами. Спасибо Sean – Dinesh