如何处理mongodb集合中的'lastModified'字段?(以这样的方式更新字段,只有在文档中的任何值发生更改时才更新)

10 浏览
0 Comments

如何处理mongodb集合中的'lastModified'字段?(以这样的方式更新字段,只有在文档中的任何值发生更改时才更新)

根据我在这个问题中收到的评论,我认为在mongodb中没有直接的方法来做到这一点。在这种情况下,是否可以用MongooseJS来实现呢?


我正在使用mongodb,对于一个集合,我需要一个'lastModified'字段,它应该显示文档中任何值的最后修改时间。这意味着,如果我执行了一个更新查询,而所有其他值都相同,那么'lastModified'不应该被更新。

例子:

假设我有一个集合中的文档如下:

{ _id: 1, status: "a", lastModified: ISODate("2016-04-02T01:11:18.965Z") }

当我用以下方式进行更新:

{$set:{"status":"a", "lastModified":"当前时间"}}

那么"lastModified" 不应该改变

当我用以下方式进行更新:

{$set:{"status":"b", "lastModified":"当前时间"}}

那么"lastModified" 应该改变

如何实现这个需求?

在我的情况下,我会多次调用更新操作,我不希望在这种情况下“lastModified”每次都改变。相反,只有当“status”实际修改时,它才应该改变。

0