C# 如何为存储为数组[ticks,offset]的DatetimeOffset创建MongoDB TTL索引?

C# 如何为存储为数组[ticks,offset]的DatetimeOffset创建MongoDB TTL索引?,c#,mongodb,mongodb-.net-driver,C#,Mongodb,Mongodb .net Driver,我试图在包含DateTimeOffset文档的集合上创建MongoDB TTL indexe。但该日期将作为一个刻度数组和偏移量(例如[ticks,offset])进行持久化。 例如: TimeStamp:Array [ 0:636803424000000000, 1:-360] 我的模型如下所示: public class Log { .... DateTimeOffset? TimeStamp{get; set;} } 我使用的是MongoDb.Driv

我试图在包含DateTimeOffset文档的集合上创建MongoDB TTL indexe。但该日期将作为一个刻度数组和偏移量(例如[ticks,offset])进行持久化。 例如:

TimeStamp:Array [
    0:636803424000000000, 
    1:-360]
我的模型如下所示:

public class Log
{
    ....
    DateTimeOffset? TimeStamp{get; set;}
}
我使用的是MongoDb.Driver v2.7.2,我一直在尝试以这种方式创建索引

....
var indexKeysDefinition = Builders<Log>.IndexKeys.Descending(l => l.TimeStamp);
var indexOptions = new CreateIndexOptions 
{ 
    ExpireAfter = TimeSpan..FromTicks(TimeSpan.TicksPerMinute), 
    Name = "LogsTimeStamPIndex", 
    Background = true 
};
var model = new CreateIndexModel<Log>(indexKeysDefinition, indexOptions);
await _database.GetCollection<Log>("Log").Indexes.CreateOneAsync(model);
....
。。。。
var indexKeysDefinition=Builders.IndexKeys.Descending(l=>l.TimeStamp);
var indexOptions=新创建的indexOptions
{ 
ExpireAfter=TimeSpan..FromTicks(TimeSpan.TicksPerMinute),
Name=“LogsTimeStamPIndex”,
背景=真
};
var模型=新的CreateIndexModel(IndexKeyDefinition,indexOptions);
wait_database.GetCollection(“Log”).index.CreateOneAsync(model);
....

这将创建索引,但文档不会在1分钟后过期。如何为以这种方式存储的DateTimeOffset创建TTL?或者我在这里遗漏了什么?

我想这会对将来的人有所帮助。
我的团队实际上联系了MognoDb的工程师,他们已经通知我们日期必须是ISO日期才能用于TTL索引。显然,[tick,offset]的格式不正确。再次感谢Adam Harrison早些时候指出这一点。

我对C不太熟悉,但看起来文档是用时间戳值存储的。TTL索引只会使索引字段为日期或包含日期数组的文档过期。请参见链接“谢谢”。我已经看过了,但令人费解的是,为什么MongoDb以[ticks,offset]格式存储DateTimeOffset,却无法直接在其上创建TTL索引。