MongoDb TTL auf verschachteltem Dokument ist möglich?

Ich möchte wissen, ob es möglich ist, TTL für verschachtelte Dokumente zu verwenden.

Szenario

ich habeAccount und innen habe ichSessions. Sessions müssen in 30 Minuten ablaufen. Ich habe alles eingerichtet, aber offensichtlich, wenn ich den TTL-Index einstelleAccount.Sessions.EndDateTime es entfernt das ganzeAccount. Kann ich sicherstellen, dass es nur entfernt wirdSession?

So sieht es in der Datenbank aus. Beachten Sie, wie es ganz löschen wirdAccount und nicht nurSession wannEndDateTime wird kommen.

{
    "_id" : ObjectId("53af273888dba003f429540b"),
    "Email" : "[email protected]",
    "PasswordHash" : "CZaBEQRbwWNgJBjyhks7gH0Z3v5ZvDkW29pryF0DEXyE8rIw0NA4x39+uQneArKaUv97sP1e+e22YT1glbqQsw==",
    "PasswordSalt" : "100000.Qx4D8uj7oDcWHRTLGRRTDwVkw2,UcaM52XkDR9k2ga073Ow==",
    "Sessions" : [ 
        {
            "Token" : "da55cf0783c4249b26283948fcae6caa15df320ca456203045aea81cad691df8",
            "IpAddress" : "::1",
            "StartDateTime" : ISODate("2014-06-28T20:36:27.000Z"),
            "EndDateTime" : ISODate("2014-06-28T21:06:27.000Z")
        }
    ]
}

Hier erstelle ich den Index.

if (!_db.Accounts.IndexExists("Sessions.EndDateTime"))
{
    _db.Accounts.CreateIndex(IndexKeys.Ascending("Sessions.EndDateTime"),
        IndexOptions.SetTimeToLive(new TimeSpan(0)));
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage