Как создать TTL-индекс MongoDB для DatetimeOffset, хранящегося в виде массива [ticks, offset]? - PullRequest
0 голосов
/ 19 декабря 2018

Я пытаюсь создать TTL-индекс MongoDB для коллекции, содержащей документы с DateTimeOffset.Но дата сохраняется как массив тиков и смещение как таковое [тики, смещение].Например:

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);
....

Создается индекс, но срок действия документов не истекает через 1 минуту.Как мне создать TTL для DateTimeOffset, хранящегося таким образом?или что мне здесь не хватает?

1 Ответ

0 голосов
/ 21 декабря 2018

Полагаю, это поможет кому-нибудь в будущем.Моя команда фактически связалась с инженерами MognoDb, и они уведомили нас, что эта дата должна быть датой ISO, которая будет использоваться для индекса TTL.Очевидно, что [галочка, смещение] имеет неправильный формат.Еще раз спасибо Адам Харрисон за то, что указал на это ранее.

...