Yanıtlar:
En iyi yolu yerli JavaScript saklamaktır tarihi nesneleri üzerine map, BSON yerli tarihi nesneler .
> db.test.insert({date: ISODate()})
> db.test.insert({date: new Date()})
> db.test.find()
{ "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:42.389Z") }
{ "_id" : ObjectId("..."), "date" : ISODate("2014-02-10T10:50:57.240Z") }
Yerel tür , örneğin harita küçültme işlerinizde kullanabileceğiniz bir dizi kullanışlı yöntemi destekler .
Gerekirse , yöntemi kullanarak Date
Unix zaman damgalarına 1) ve nesnelerini kolayca dönüştürebilirsiniz.getTime()
Date(milliseconds)
, sırasıyla yapıcıyı .
1) Açıkçası, Unix zaman damgası saniye cinsinden ölçülür . JavaScript Date nesnesi , Unix döneminden bu yana milisaniye cinsinden ölçer .
389
ve 240
zaman damgasının milisaniyeleridir. Z
İçinde dize biçiminde sağlanan damgası UTC olduğunu MongoDB söyler. Daha sonra tekrar okursanız, uygulamanız muhtemelen yerel saat diliminize dönüştürür ve zaman değişmiş gibi görünür. Fakat zaman hala aynı, sadece farklı bir saat dilimi perspektifinden yorumlanıyor. Örneğin 12:50:42Z
ve 13:50:42+01:00
aynı anı temsil eder.
21:56:03+01:00
CET şu anda ve eklemek new Date()
, daha sonra MongoDB olabilir temsil olarak 20:56:03Z
. Ancak yerel saat dilimi ayarlarını (CET) kullanarak geri okuduğunuzda ve uygulamanızda görüntülediğinizde, 21:56:03
tekrar okunur .
Ekleme süresi ihtiyacınız olan şeyse, zaten oradadır:
Mongodb Shell'e giriş yapın
ubuntu@ip-10-0-1-223:~$ mongo 10.0.1.223
MongoDB shell version: 2.4.9
connecting to: 10.0.1.223/test
Öğeler ekleyerek veritabanınızı oluşturun
> db.penguins.insert({"penguin": "skipper"})
> db.penguins.insert({"penguin": "kowalski"})
>
Bu veritabanını şu anda bulunduğumuz veritabanı yapalım
> use penguins
switched to db penguins
Satırları geri alın:
> db.penguins.find()
{ "_id" : ObjectId("5498da1bf83a61f58ef6c6d5"), "penguin" : "skipper" }
{ "_id" : ObjectId("5498da28f83a61f58ef6c6d6"), "penguin" : "kowalski" }
Her satırı yyyy-AA-gg SS: dd: ss biçiminde alın:
> db.penguins.find().forEach(function (doc){ d = doc._id.getTimestamp(); print(d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate() + " " + d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds()) })
2014-12-23 3:4:41
2014-12-23 3:4:53
Bu son tek katmanlı sizi karıştırırsa, bunun nasıl çalıştığına dair bir izlenimim var: https://stackoverflow.com/a/27613766/445131
_id
mıdır?
_id.getTimestamp()
.