首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在插入时自动将服务器日期添加到文档?

如何在插入时自动将服务器日期添加到文档?
EN

Stack Overflow用户
提问于 2021-04-23 07:45:30
回答 1查看 17关注 0票数 0

我使用REST API (RESTHEART)将新条目插入到MongoDB中。我有一个JSON要插入

代码语言:javascript
复制
{
    "name": "test"
}

当我插入上述文档时,MongoDB会自动为我的文档创建_id字段,这是一件好事。但我也希望Mongo (或restheart)自动创建一个带有当前服务器时间戳的字段"date“。我该如何实现这一点?我不想把客户端的日期放在我的服务器上,也不想在"_id“字段中使用内置的日期。我想让我的每个数据库条目在插入时都有时间戳签名。奇怪的是,我还没有找到任何方法来完成这个简单的任务。这有可能吗?我真的不想从头开始编写我自己的服务器,这样我的用户就可以将JSON文档发布到我的数据库中。我只能通过在post请求中指定无效的JSON来插入服务器日期。

代码语言:javascript
复制
{
    "name": "test",
    "date": new Date()
}

这是可行的,但这显然是一个糟糕的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2021-04-23 07:54:11

如果您有一个唯一的字段或字段组合(即,如果要插入的文档与集合中已有的文档不匹配),并且您使用的是MongoDB 4.2+,则可以向上插入文档而不是插入,并使用$$NOW运算符来插入当前服务器时间。

代码语言:javascript
复制
db.collection.update(
    { "name": "test" },
    [{$set: {createdAt:"$$NOW"}}],
    {upsert: true}
)

使用我的本地集群进行测试,插入的文档如下所示:

代码语言:javascript
复制
{
    "_id" : ObjectId("60820c671de6b9f1d245f63e"),
    "name" : "test",
    "createdAt" : ISODate("2021-04-22T23:53:10.721Z")
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67222155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档