У меня есть коллекция элементов в mongodb, которые выглядят так (я использую pymongo):
{'type':'_sometype', 'name':'_somename', 'date':datetime, 'incoming':bool}
type
и name
не уникальны для всех элементов, поэтому можноесть предметы с одинаковыми type
и name
, но различающимися date
с.
Проблема: иногда мне нужно будет определить, был ли предмет найден в некоторыхзапрос является последней версией этого элемента.Я делал следующее:
def isLatest(item):
return not collection.find_one({'date':{'$gt':item['date']},
'type':item['type'],
'name':item['name'],
'incoming':item['incoming']})
, который просто запрашивает у mongodb соответствующий элемент, который имеет более свежее значение для date
.Если такой элемент найден, эта функция возвращает False
(потому что переданный item
не является последней версией).
Я вызываю эту функцию много раз, один раз для каждого элемента в данном запросе,и мне кажется, что был бы гораздо лучший способ сделать это, чем неоднократно запрашивать некоторые данные.Если это не выглядит нормально для всех, в таком случае я благодарю вас за вашу оценку: D
Любые мысли приветствуются, заранее спасибо,
-S