使用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})
时间过去了,但文档永远不会从集合中删除。任何帮助表示赞赏。
答案 0 :(得分:0)
在查看集合中的代码和数据后,我想到了这一点。未正确分配日期的BSon数据类型。这是因为这一行不正确:
var bdate = new BsonElement("expiresAt", date.ToUniversalTime().ToString("o"));
应该是:
var bdate = new BsonElement("expiresAt", date.ToUniversalTime());