2016-04-13 20 views
0

2 defa arasındaki farkı hesaplayın Last Modified At adlı alana '2016/04/12 20:24:18' gibi bir alana sahibim. MongoDb'de bir java işlemi ile saklanan bir ISO Tarihi değil normal bir String değeri değildir. '2016/04/12 20:24:18' arasındaki farkı hesaplamak ve '2016/04/12 16:24:18' derken bir kabuk komut dosyası yazmaya çalışıyorum. Fark, günler veya saatler veya dakikalar veya saniyeler içinde olabilir. ISO tarihlerine dönüştürmek de dahil olmak üzere birkaç şeyi denedim ama işe yaramıyor. Oracle gibi öğrenmenin kolay bir yolu var mı?MongoDB

Herhangi bir yardım için teşekkür ederiz?

sayesinde Ram

+0

Sorunuzdaki [düzenle] bağlantısını, ISO tarihlerine dönüştürme girişimlerini eklemek için kullanabilir misiniz? – chridam

cevap

0

Sana shell script işletmek istiyorum nasıl tam emin değilim ama tarih (Javascript kullanarak) ayrıştırması ve senin kadar iki tarih arasındaki süreyi hesaplamak için Mongo kabuk içinde mümkündür soruldu. aşağıdaki gibi things veritabanında bir belge var varsayalım:

{ 
    "_id" : ObjectId("570f1e528163383227ace761"), 
    "lastModifiedAt" : "2016/04/12 20:24:18" 
} 

Biz belgesinin yanı sıra bir sabit kodlanmış tarihi lastModifiedDate arasındaki farkı almak için aşağıdaki komut dosyasını çalıştırın böyle 2016/04/12 16:24:18 olarak:

db.things.find({}).forEach(function(thing) { 
    var date1 = new Date(thing.lastModifiedAt); 
    var date2 = new Date('2016/04/12 16:24:18'); 
    var dateDiff = date1.getTime() - date2.getTime(); 
    printjson({_id:thing._id,lastModifiedAt:thing.lastModifiedAt,dateDiff:dateDiff}); 
}); 
içinde

Bu sonuçlar: dateDiff milisaniye ve 14400000 milliseconds = 4 hours olduğunu

{ 
    "_id" : ObjectId("570f1e528163383227ace761"), 
    "lastModifiedAt" : "2016/04/12 20:24:18", 
    "dateDiff" : 14400000 
} 

.

Bu çağrıyı nasıl yapmayı planladığınız hakkında daha fazla bilgi verirseniz ve ikinci tarihin nereden geldiği konusunda bu yanıtı genişletmekten memnuniyet duyarız.