C# 如何让mongo TTL在c中过期#
Mongo不会让旧的收藏过期。我检查以确保我的索引类型是dateC# 如何让mongo TTL在c中过期#,c#,mongodb,C#,Mongodb,Mongo不会让旧的收藏过期。我检查以确保我的索引类型是date var keys = IndexKeys.Ascending("expiry"); var options = IndexOptions.SetTimeToLive(TimeSpan.FromMinutes(1)); collection.EnsureIndex(keys, options); this.ExpireDate = new BsonDateTime(DateTime.UtcNow.AddMinutes(5)); v
var keys = IndexKeys.Ascending("expiry");
var options = IndexOptions.SetTimeToLive(TimeSpan.FromMinutes(1));
collection.EnsureIndex(keys, options);
this.ExpireDate = new BsonDateTime(DateTime.UtcNow.AddMinutes(5));
var insertResult = collection.Insert(this);
任何提示都将不胜感激
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "Showsv1.ShowInfo",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"expiry" : 1
},
"ns" : "Showsv1.ShowInfo",
"name" : "expiry_1",
"expireAfterSeconds" : 60
}
]
该代码在ExpireTime属性顶部缺少[BSOneElement(“Expirement”)]。
谢谢@wiredparie的提示 您是否已检查是否无意中被某个约束绊倒()。只要
“expire”
是一个日期-时间字段,并且该字段上没有其他索引,就可以使用。expireExpireDate
和expire
旁边没有任何索引字段?如果我理解了你的代码片段,它们需要匹配。确实如此,我正在用c#映射名称。嗯。使用[bsonement(“到期”)]
?那么还有别的事吗?考虑到你发布的内容,这似乎是正确的。
"expiry" : ISODate("2013-02-15T02:40:45.876Z")