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

MongoDB $currentDate

W MongoDB $currentDate operator ustawia wartość pola na bieżącą datę.

Może być ustawiony jako Data lub sygnaturę czasową rodzaj. Wartość domyślna to Data .

$currentDate to aktualizacja operatora i może być używany tylko podczas aktualizacji dokumentów, a nie podczas ich wstawiania (chociaż może być używany w operacjach upsert).

Przykład

Załóżmy, że mamy kolekcję o nazwie dogs z następującym dokumentem:

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

I chcemy dokonać zmiany w dokumencie. Kiedy wprowadzamy zmianę, musimy zaktualizować dateModified pole do daty zmiany.

Dlatego możemy użyć $currentDate operatora, aby ustawić datę na datę bieżącą. Możemy zrobić coś takiego:

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

Tutaj używamy dateModified: true aby ustawić datę za pomocą Daty typ (jest to skrócony sposób ustawienia go jako Data typ).

Możemy zweryfikować wynik, ponownie patrząc na kolekcję/dokument:

db.dogs.findOne()

Wynik:

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

Widzimy, że dateModified pole zostało zaktualizowane do aktualnej daty (tj. daty/godziny uruchomienia aktualizacji). goodDog pole zostało również zaktualizowane zgodnie z opisem.

sygnatury czasowe

Domyślnie $currentDate używa Daty rodzaj. Alternatywnie można określić typ w dokumencie. Dlatego możesz użyć {$type: timestamp} aby data została zaktualizowana do sygnatury czasowej Typ BSON.

Przykład:

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

W tym przypadku udostępniliśmy dokument, w którym określono sygnaturę czasową rodzaj.

Możesz również użyć tej metody dla Daty wpisz (lub użyj metody skróconej, jak pokazano w poprzednim przykładzie).

Sprawdź kolekcję:

db.dogs.findOne()

Wynik:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. mongodb:wstaw, jeśli nie istnieje

  2. Jak zaprojektować indeks tablicy po rozwinięciu tablicy za pomocą platformy agregacji MongoDB?

  3. 5 najważniejszych zalet współdzielonego hostingu MongoDB

  4. Filtry tablicy Mongodb 3.6.0-rc3 nie działają?

  5. Błąd ECONNREFUSED podczas łączenia się z mongodb z node.js