2016-08-04 54 views
0

我沒有任何運氣使用c#wrapper使用ttl特性使文檔過期。使用c#wrapper的Mongo DB 3.2 ttl

我的代碼: 「expiresAt」:

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元素看起來像這樣正確地插入 「2016-08-04T18:38:00.0000000Z」

我已經使用以下文檔創建索引:db.testc.createIndex({「expireAt」:1},{expireAfterSeconds:0})

時間到了,但文檔永遠不會從集合中刪除。任何幫助表示讚賞。

回答

0

在查看代碼和集合中的數據後,我想到了這一點。日期的BSon數據類型未被正確分配。這是因爲該行是不正確的:

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

應該是:

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