MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zmienna agregacji MongoDB NOW

MongoDB zapewnia NOW zmienna systemowa, która pozwala uzyskać bieżącą wartość daty i godziny podczas korzystania z potoku agregacji.

Może to być przydatne, gdy chcesz zaktualizować dokument z bieżącą datą i godziną.

Począwszy od MongoDB 4.2, metody aktualizacji mogą akceptować potok agregacji. Dlatego NOW może być używany jako alternatywa dla $currentDate operator aktualizacji pola do ustawiania bieżącej daty i godziny podczas korzystania z dowolnej metody aktualizacji.

Aby uzyskać dostęp do NOW zmienna systemowa, poprzedź ją dwoma znakami dolara i otocz w cudzysłowie ("$$NOW" ).

Przykład

Załóżmy, że mamy kolekcję o nazwie dogs który zawiera następujący dokument:

{ "_id" : 1, "name" : "Fetch", "weight" : 25 }

Oto przykład użycia NOW zmienna systemowa podczas aktualizacji tego dokumentu:

db.dogs.updateOne(
  { _id : 1 },
  [
    { $set : { weight : 30, lastModified : "$$NOW" } }
  ]
)

Teraz spójrzmy ponownie na dokument:

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

Wynik:

{
	"_id" : 1,
	"name" : "Fetch",
	"weight" : 30,
	"lastModified" : ISODate("2021-01-27T01:29:32.833Z")
}

lastModified zostało dodane pole z obiektem Date zawierającym aktualną datę i godzinę.

Jest też CLUSTER_TIME zmienna systemowa, która zwraca bieżący znacznik czasu, chociaż jest dostępna tylko w zestawach replik i klastrach podzielonych na fragmenty.

Pamiętaj również, że NOW i CLUSTER_TIME wartości pozostają takie same w całym potoku.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak sprawdzić typ danych kolumny w SQL?

  2. Jak w MongoDB użyć $set do aktualizacji zagnieżdżonej wartości/osadzonego dokumentu?

  3. Uwierzytelnianie MongoDB-CR nie powiodło się

  4. Odpowiednik procedury przechowywanej MongoDB

  5. Mongoose:porównania identyfikatorów obiektów kończą się niepowodzeniem