在MongoDB中自动设置DateTimeAccessed字段(通过C#MongoDriver)

时间:2014-08-11 21:14:26

标签: mongodb mongodb-.net-driver

是否有方便的方法来定位字段(DateTimeAccessedDateTimeModified等,在这种情况下,虽然更通用的答案可以正常工作)文档要作为副作用更新当他们被Mongo感动时?

我可以尝试包装mongoCollection.Find*|Remove*...方法,或尝试拦截Query个对象,寻找合适的字段($ set - > add set DateTimeModified,例如),但所有这一切似乎相当特别和hacky。有没有一种标准的方法来做这种事情,而不模拟一个钩子'进入数据库交互?

1 个答案:

答案 0 :(得分:0)

我通常会创建一个基本的Update方法,所有其他方法都会使用它来开始构建更新。

e.g。

    /// <summary>
    /// Get the initial update builder
    /// </summary>
    private UpdateBuilder<Account> UpdateBuilder()
    {
        var now = DateTime.UtcNow;
        return new UpdateBuilder<Account>()
                     .Set(e => e.DateTimeUtcAccessed, now)
                     .Set(e => e.DateTimeUtcModified, now);
    }

您还可以将此作为通用方法,并将接口IDateTimeStamps添加到要应用此类的所有类。