2015-10-26 4 views
5

Я в настоящее время пытаюсь найти способ найти ближайшую дату записи в mongoDB в on, которую я ищу.Найти ближайшую дату в одном запросе

В настоящее время я решил проблему, используя 2 запроса. Один из них использует $ gte и limit (1) для поиска следующей более крупной даты, а затем $ lte - limit (1), чтобы увидеть, есть ли более близкое к тому, что может быть ниже.

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

Надеюсь, вы сможете помочь мне с этим или, по крайней мере, сказать мне, что это единственный способ сделать это.

db.collection.find({"time":{$gte: isoDate}}).sort({"time":1}).limit(1) 
db.collection.find({"time":{$lte: isoDate}}).sort({"time":-1}).limit(1) 

Но я ищу способ сделать это в одном запросе, поэтому я не должен вычесть результаты, чтобы найти ближайший один.

+0

Можете ли вы изменить свой вопрос, чтобы включить некоторые выборочные данные, ожидаемые результаты и запрос вы пробовали? – chridam

ответ

4

проверить это один

db.collection.find({"time":{$gte: isoDate,$lt: isoDate}}).sort({"time":1}).limit(1) 

Пожалуйста, используйте тот же формат, что MongoDB поддержку как followiong

ISODate("2015-10-26T00:00:00.000Z") 
Смежные вопросы