sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB $currentDate

I MongoDB, $currentDate operatorn ställer in värdet på ett fält till det aktuella datumet.

Det kan ställas in som antingen Datum eller en tidsstämpel typ. Standardinställningen är Datum .

$currentDate är en uppdatering operatör, och kan endast användas vid uppdatering av dokument, inte när du infogar dem (även om den kan användas i upsert-operationer).

Exempel

Anta att vi har en samling som heter dogs med följande dokument:

{
	"_id" : 1,
	"name" : "Wag",
	"goodDog" : true,
	"dateModified" : ISODate("2020-01-01T00:00:00Z")
}

Och vi vill göra en ändring i dokumentet. När vi gör ändringen måste vi uppdatera dateModified fältet till datumet för ändringen.

Därför kan vi använda $currentDate operatör för att ställa in datumet till det aktuella datumet. Vi kan göra något så här:

db.dogs.update( 
  { _id: 1 }, 
  {
    $currentDate: {
      dateModified: true
    },
    $set: {
      goodDog: false
    }
  }
)

Här använder vi dateModified: true för att ställa in datumet med Datum typ (detta är ett förkortat sätt att ställa in det som ett datum typ).

Vi kan verifiera resultatet genom att titta på samlingen/dokumentet igen:

db.dogs.findOne()

Resultat:

{
	"_id" : 1,
	"name" : "Wag",
	"goodDog" : false,
	"dateModified" : ISODate("2021-01-16T04:17:41.206Z")
}

Vi kan se att dateModified fältet har uppdaterats till det aktuella datumet (dvs. datumet/tiden då jag körde uppdateringen). goodDog fältet har också uppdaterats enligt specifikation.

Tidsstämplar

Som standard $currentDate använder Datum typ. Du kan alternativt ange typen i ett dokument. Därför kan du använda {$type: timestamp} så att datumet uppdateras till en tidsstämpel BSON-typ.

Exempel:

db.dogs.update( 
  { _id: 1 }, 
  {
    $currentDate: {
      dateModified: { $type: "timestamp" }
    },
    $set: {
      goodDog: true
    }
  }
)

I det här fallet tillhandahöll vi ett dokument som specificerade tidsstämpeln typ.

Du kan också använda den här metoden för datumet typ (eller använd stenografimetoden som ses i föregående exempel).

Kontrollera samlingen:

db.dogs.findOne()

Resultat:

{
	"_id" : 1,
	"name" : "Wag",
	"goodDog" : true,
	"dateModified" : Timestamp(1610771023, 1)
}


  1. Hur får jag åtkomst till Meteors MongoDB från en annan klient medan Meteor körs?

  2. Fjäderdata Redis HGETALL operation

  3. Ta bort en nyckel/värde från befintlig MongoDB-post

  4. Vad är tcp-backlog i redis.conf