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

Agregační proměnná MongoDB NOW

MongoDB poskytuje NOW systémová proměnná, která vám umožňuje získat aktuální hodnotu data a času při použití agregačního kanálu.

To může být užitečné, když chcete aktualizovat dokument aktuálním datem a časem.

Počínaje MongoDB 4.2 mohou metody aktualizace přijímat agregační kanál. Proto NOW lze použít jako alternativu k $currentDate pole operátor aktualizace pro nastavení aktuálního data a času při použití kterékoli z metod aktualizace.

Pro přístup k NOW systémovou proměnnou, před ní vložte dva znaky dolaru a vložte ji do uvozovek ("$$NOW" ).

Příklad

Předpokládejme, že máme sbírku nazvanou dogs který obsahuje následující dokument:

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

Zde je příklad použití NOW systémová proměnná při aktualizaci tohoto dokumentu:

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

Nyní se znovu podíváme na dokument:

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

Výsledek:

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

lastModified pole bylo přidáno s objektem Date, který obsahuje aktuální datum a čas.

Je zde také CLUSTER_TIME systémová proměnná, která vrací aktuální časové razítko, i když je k dispozici pouze v sadách replik a sdílených clusterech.

Všimněte si také, že NOW a CLUSTER_TIME hodnoty zůstávají v celém kanálu stejné.


  1. Jak zkontrolovat, zda pole pole obsahuje jedinečnou hodnotu nebo jiné pole v MongoDB?

  2. Kontingenční řádky do sloupců v MongoDB

  3. Jaký je nejjednodušší způsob, jak najít největší objekty v Redis?

  4. Jak na to:Použijte HBase Hromadné načítání a proč