sql >> Databáze >  >> NoSQL >> MongoDB

Metoda MongoDB Date().

V MongoDB, Date() metoda vrací datum buď jako řetězec, nebo jako objekt Date.

  • Když to zavoláte jako Date() , vrátí aktuální datum jako řetězec v mongo skořápka.
  • Když to zavoláte jako new Date() , vrátí aktuální datum jako objekt Date.

Můžete také zadat konkrétní datum jako argument pro new Date() , takže použije toto datum.

Příklad – Date()

Zde je příklad vložení dokumentu do kolekce a použití Date() jako hodnotu pro jedno z polí:

db.dogs.insert(
  { 
    "_id" : 1,
    "name" : "Fetch", 
    "lastModified" : Date()
  }
)

Po spuštění tohoto kódu se můžeme podívat na výsledný dokument:

db.dogs.find().pretty()

Výsledek:

{
	"_id" : 1,
	"name" : "Fetch",
	"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)"
}

Vidíme, že lastModified pole datum používá jako hodnotu řetězec data.

Příklad – new Date()

Jak již bylo zmíněno, pokud chcete vrátit objekt data namísto řetězce data, použijte new Date() .

Příklad:

db.dogs.insert(
  { 
    "_id" : 2,
    "name" : "Wag", 
    "lastModified" : new Date()
  }
)

Jednoduše přidejte před Date() s new výsledkem je objekt Date spíše než řetězec data.

Nyní znovu zkontrolujeme sbírku dokumentů:

db.dogs.find().pretty()

Výsledek:

{
	"_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")
}

Vidíme, že datum ve druhém dokumentu bylo zabaleno pomocí ISODate() pomocník. ISODate je v UTC.

Uveďte konkrétní datum

Při volání Date() můžete zadat své vlastní datum metoda.

Chcete-li to provést, předejte řetězec data ISO-8601 s rokem v celém rozsahu 09999 na new Date() konstruktor nebo ISODate() funkce.

Zde je příklad.

db.dogs.update(
  { "_id" : 1 },
  { $set : { "born" : new Date( "2020-10-07" ) } }
)

Nyní zkontrolujeme dokument:

db.dogs.find( { "_id": 1 } ).pretty()

Výsledek:

{
	"_id" : 1,
	"name" : "Fetch",
	"lastModified" : "Wed Jan 27 2021 10:15:53 GMT+1000 (AEST)",
	"born" : ISODate("2020-10-07T00:00:00Z")
}

Vidíme, že pole narození bylo přidáno a bylo nastaveno na poskytnuté datum.

Datum můžete zadat v následujících formátech.

Formát Popis
YYYY-mm-dd Vrátí ISODate se zadaným datem.
YYYY-mm-ddTHH:MM:ss Určuje datum a čas v místním časovém pásmu klienta a vrací ISODate se zadaným datem a časem v UTC.
YYYY-mm-ddTHH:MM:ssZ Určuje datum a čas v UTC a vrací ISODate se zadaným datem a časem v UTC.
Celé číslo Můžete také zadat celé číslo jako hodnotu. Když to uděláte, určí datum a čas v milisekundách od epochy Unixu (1. ledna 1970) a vrátí výslednou hodnotu ISODate instance.

Epocha Unix

Zde je příklad zadání celého čísla jako argumentu new Date() .

Tímto způsobem určíte datum a čas v milisekundách od epochy Unixu (1. ledna 1970) a vrátí výslednou hodnotu ISODate instance.

db.dogs.update(
  { "_id" : 2 },
  { $set : { "born" : new Date( 1601207768012 ) } }
)

Nyní zkontrolujeme dokument:

db.dogs.find( { "_id": 2 } ).pretty()

Výsledek:

{
	"_id" : 2,
	"name" : "Wag",
	"lastModified" : ISODate("2021-01-27T00:19:08.862Z"),
	"born" : ISODate("2020-09-27T11:56:08.012Z")
}


  1. Meteor používá funkce načítání nebo hledání v pomocných funkcích šablony?

  2. mongoDB odlišné a kde ve stejném dotazu?

  3. Má mongoDB problémy s opětovným připojením nebo to dělám špatně?

  4. Je to dobrý případ použití pro Redis na ServiceStack REST API?