使用 Golang 自动执行 MongoDB 中的 Created_at 和 Updated_at 字段
在提供的代码片段中,User 结构缺乏对 Created_at 和 Updated_at 字段的自动化。这些字段对于跟踪时间事件至关重要。
解决方案
MongoDB 服务器缺乏对自动字段填充的支持。为此,您可以为 User 结构实现自定义封送处理函数。通过实现 bson.Marshaler 接口,您可以控制结构体如何序列化为 BSON。
实现
以下是如何实现 MarshalBSON 函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
必须注意MarshalBSON函数有一个指针接收器,并且必须使用封送时指向您的 User 值的指针。
用法
实现自定义封送功能后,您可以像这样使用它:
1 2 3 4 5 6 |
|
说明
MarshalBSON 函数检查如果created_at字段为空,则将其设置为当前时间。然后它将 Updated_at 字段设置为当前时间。通过使用类型别名 (my) 并将 User 结构强制转换为 *my,可以避免编组过程中潜在的堆栈溢出。
以上是如何使用 Golang 在 MongoDB 中自动创建 Created_at 和 Updated_at 时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!