【问题标题】:Mongo DB 3.2 ttl using c# wrapperMongodb 3.2 ttl 使用 c# 包装器
【发布时间】:2016-08-04 19:44:43
【问题描述】:

我没有任何运气使用 c# 包装器使用 ttl 功能使文档过期。

我的代码:

string j = JsonConvert.SerializeXmlNode(xnode, Newtonsoft.Json.Formatting.Indented);
            var b = BsonDocument.Parse(j);
            var date = new DateTime(2016,8,4,16,25,0,0);
            var bdate = new BsonElement("expiresAt", date.ToUniversalTime().ToString("o"));
            b.Add(bdate);
            _collection.InsertOneAsync(b);

文档已正确插入,expiresAt 元素如下所示:“expiresAt”:“2016-08-04T18:38:00.0000000Z”

我使用文档创建了一个索引: db.testc.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )

时间来了又去,但文档永远不会从集合中删除。任何帮助表示赞赏。

【问题讨论】:

    标签: c# .net mongodb


    【解决方案1】:

    我在查看代码和集合中的数据后发现了这一点。日期的 BSon 数据类型未正确分配。这是因为这行不正确:

    var bdate = new BsonElement("expiresAt", date.ToUniversalTime().ToString("o"));
    

    应该是:

    var bdate = new BsonElement("expiresAt", date.ToUniversalTime());
    

    【讨论】:

      猜你喜欢
      • 2023-03-02
      • 2015-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多