使用c#包装器的Mongo DB 3.2 ttl

时间:2016-08-04 19:44:43

标签: c# .net mongodb

使用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})

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

1 个答案:

答案 0 :(得分:0)

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

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

应该是:

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