2015-10-26 7 views
5

Şu anda bir girişin en yakın tarihini bulmak için bir yol bulmaya çalışıyorum.Bir sorguda en yakın tarihi bul

Şu anda 2 sorgu kullanarak sorunu çözdüm. Biri daha büyük bir tarih olup olmadığına bakmak için $ gte ve limit (1) kullanarak daha düşük bir limit olup olmadığını görmek için $ lte-limit (1).

Sadece bir sorguda en yakın tarihi bulmanın bir yolu olabilirse, ancak bu konuda herhangi bir şey bulamadıysa merak ediyorum.

Bu konuda bana yardımcı olabileceğini umuyorum ya da en azından bunu yapmanın tek yolu olduğundan emin ol.

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

Ama ben en yakın olan bulmak için sonuçları çıkarmak zorunda kalmazsınız böylece bir sorguda bunu yapmanın bir yolu arıyorum.

+0

followiong gibi destek mongodb neyi aynı biçimi kullanın? – chridam

cevap

4

onay bu bir

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

Eğer denedi bazı örnek verileri, beklenen çıkışını ve sorgu içerecek şekilde sorunuzu düzenleyebilir

ISODate("2015-10-26T00:00:00.000Z")