В MongoDB, Date()
метод връща дата или като низ, или като обект Date.
- Когато го извикате като
Date()
, връща текущата дата като низ вmongo
черупка. - Когато го извикате като
new Date()
, той връща текущата дата като обект Date.
Можете също да предоставите конкретна дата като аргумент за new Date()
, така че да използва тази дата.
Пример – Date()
Ето пример за вмъкване на документ в колекция и използване на Date()
като стойност за едно от полетата:
db.dogs.insert(
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : Date()
}
)
След като изпълним този код, можем да разгледаме получения документ:
db.dogs.find().pretty()
Резултат:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)" }
Можем да видим, че lastModified
полето за дата използва низ от дата като стойност.
Пример – new Date()
Както споменахме, ако искате да върнете обект за дата вместо низ от дата, използвайте new Date()
.
Пример:
db.dogs.insert(
{
"_id" : 2,
"name" : "Wag",
"lastModified" : new Date()
}
)
Просто се добавя Date()
с new
води до обект Date, а не низ от дата.
Сега нека отново проверим колекцията от документи:
db.dogs.find().pretty()
Резултат:
{
"_id" : 1,
"name" : "Fetch",
"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}
{
"_id" : 2,
"name" : "Wag",
"lastModified" : ISODate("2021-01-27T00:19:08.862Z")
}
Можем да видим, че датата във втория документ е обвита с ISODate()
помощник. ISODate е в UTC.
Посочете конкретна дата
Можете да посочите своя собствена дата, когато извикате Date()
метод.
За да направите това, предайте низ от дата ISO-8601 с година в рамките на включващия диапазон 0
до 9999
към new Date()
конструктор или ISODate()
функция.
Ето един пример.
db.dogs.update(
{ "_id" : 1 },
{ $set : { "born" : new Date( "2020-10-07" ) } }
)
Сега нека проверим документа:
db.dogs.find( { "_id": 1 } ).pretty()
Резултат:
{ "_id" : 1, "name" : "Fetch", "lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)", "born" : ISODate("2020-10-07T00:00:00Z") }
Можем да видим, че полето за раждане е добавено и е зададено на предоставената дата.
Можете да предоставите датата в следните формати.
Формат | Описание |
---|---|
YYYY-mm-dd | Връща ISODate с посочената дата. |
YYYY-mm-ddTHH:MM:ss | Указва датата и часа в местната часова зона на клиента и връща ISODate с посочената дата и час в UTC. |
YYYY-mm-ddTHH:MM:ssZ | Указва датата и часа в UTC и връща ISODate с посочената дата и час в UTC. |
Цяло число | Можете също да предоставите цяло число като стойност. Когато направите това, той посочва датата и часа като милисекунди от епохата на Unix (1 януари 1970 г.) и връща получения ISODate пример. |
Unix Epoch
Ето пример за посочване на цяло число като аргумент за new Date()
.
Това посочва датата и часа като милисекунди от епохата на Unix (1 януари 1970 г.) и връща получения ISODate
пример.
db.dogs.update(
{ "_id" : 2 },
{ $set : { "born" : new Date( 1601207768012 ) } }
)
Сега нека проверим документа:
db.dogs.find( { "_id": 2 } ).pretty()
Резултат:
{ "_id" : 2, "name" : "Wag", "lastModified" : ISODate("2021-01-27T00:19:08.862Z"), "born" : ISODate("2020-09-27T11:56:08.012Z") }