$currentDate (Data Atual)
Última atualização: 2026-10-09
$currentDate (Data Atual)
$currentDate define um campo com a hora atual como Date ou Timestamp. `{ $currentDate: { lastModified: true } }` armazena uma Date por padrão; `{ $currentDate: { lastModified: { $type: 'timestamp' } } }` armazena um Timestamp. Mais preciso que new Date() no lado do cliente e evita divergência de relógio entre servidor e cliente.
| Categoria | Atualização de Campo |
|---|---|
| Versão do MongoDB | 3.6+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $currentDate: { <campo>: true | { $type: 'timestamp' | 'date' } } }
⚙️ Parâmetros
| campo | O campo a definir com a hora atual. |
|---|---|
| tipo | true armazena um Date; 'timestamp' ou 'date' podem ser explícitos. |
Retorno:O resultado da atualização
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $currentDate: registra o momento da modificação
// true armazena uma Date por padrão
db.articles.updateOne(
{ _id: 1 },
{ $currentDate: { lastModified: true } }
)
// Timestamp explícito
db.articles.updateOne(
{ _id: 1 },
{ $currentDate: { lastModified: { $type: 'timestamp' } } }
)
Saída:
// lastModified é definido com a hora do servidor como Date ou Timestamp
📌 Notas
- Cria o campo se ele estiver ausente
- Timestamp é adequado para ordenação ou necessidades de timestamps duplicados
- Usa a hora do servidor, independente de fusos horários do cliente
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $currentDate e $set: new Date()?
A$currentDate lê o relógio do servidor de forma consistente; $set usa a hora do cliente, que pode diferir entre clientes.
QEle pode armazenar um Timestamp?
ASim, especifique { $type: 'timestamp' }.
Q$currentDate sobrescreve valores existentes?
ASim, ele sobrescreve com a hora atual.