gpt4 book ai didi

node.js - 如何在 Mongodb 的 Upsert 上自动更新时间戳

转载 作者:可可西里 更新时间:2023-11-01 10:44:04 24 4
gpt4 key购买 nike

如果我有一个带有键 expires 的 Schema;每次更新文档时,如何让该键的值自动更新?这可能更复杂,但是,我正在 upserting 所以这个值需要在初始 insert 上设置,然后在每个 upsert 上更新>.

因此,当文档被插入时:

{
expires: *an hour from the insert*
}

当它是更新d时(通过upsert):

{
expires: *an hour from the update*
}

如果 Mongoose 内置了此功能,我正在使用它。如果 Mongodb 不支持它,Mongoose 也不支持,我将只需要计算 expires: 并更新值,但它会很高兴在 Mongodb 中自动完成这项工作!

事实上,它不会真的需要处理insert;因为我可以检查 expires 是否为空并从 _id 中提取时间。

一如既往,非常感谢任何帮助!

最佳答案

Mongoose 中间件不会在 update 调用时触发,因此您需要自己做:

var expires = new Date();
expires.setHours(expires.getHours() + 1);
MyModel.update({...}, {$set: {expires: expires, ...}}, {upsert: true}, callback);

此外,我不知道您的用例,但如果您想这样做,您还应该查看 Mongo 对使集合中的数据过期的内置支持。参见 here .

关于node.js - 如何在 Mongodb 的 Upsert 上自动更新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com