Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
S’APPLIQUE À : MongoDB
La fonctionnalité de durée de vie (TTL) permet à la base de données de faire expirer automatiquement les données. L’API Azure Cosmos DB pour MongoDB utilise les fonctionnalités de durée de vie de base d’Azure Cosmos DB. Deux modes sont prises en charge : la définition d’une valeur de durée de vie par défaut sur l’ensemble de la collection et la définition de valeurs de durée de vie individuelles pour chaque document. La logique d’index de durée de vie et les valeurs de durée de vie par document dans l’API d’Azure Cosmos DB pour MongoDB sont les mêmes que dans Azure Cosmos DB.
Pour activer universellement la durée de vie dans une collection, un « index TTL » (index de durée de vie) doit être créé. L’index TTL est un index sur le champ _ts
avec une valeur « expireAfterSeconds ».
Exemple MongoShell :
globaldb:PRIMARY> db.coll.createIndex({"_ts":1}, {expireAfterSeconds: 10})
La commande dans l’exemple ci-dessus crée un index avec la fonctionnalité de durée de vie.
La sortie de la commande comprend différentes métadonnées :
{
"_t" : "CreateIndexesResponse",
"ok" : 1,
"createdCollectionAutomatically" : true,
"numIndexesBefore" : 1,
"numIndexesAfter" : 4
}
Une fois que l’index est créé, la base de données supprimera automatiquement tous les documents de la collection qui n’ont pas été modifiés au cours des 10 dernières secondes.
Notes
_ts
est un champ spécifique d’Azure Cosmos DB qui n’est pas accessible à partir des clients MongoDB. Il s’agit d’une propriété (système) réservée qui contient le timestamp de la dernière modification du document.
Exemple Java :
MongoCollection collection = mongoDB.getCollection("collectionName");
String index = collection.createIndex(Indexes.ascending("_ts"),
new IndexOptions().expireAfter(10L, TimeUnit.SECONDS));
Exemple en code C# :
var options = new CreateIndexOptions {ExpireAfter = TimeSpan.FromSeconds(10)};
var field = new StringFieldDefinition<BsonDocument>("_ts");
var indexDefinition = new IndexKeysDefinitionBuilder<BsonDocument>().Ascending(field);
await collection.Indexes.CreateOneAsync(indexDefinition, options);
Les valeurs de durée de vie par document sont également prises en charge. Les documents doivent contenir une propriété de niveau racine « ttl » (en minuscules), et un index de durée de vie comme décrit ci-dessus doit avoir été créé pour cette collection. Les valeurs de durée de vie définies sur un document remplacent la valeur de durée de vie de la collection.
La valeur de durée de vie doit être un Int32. Vous pouvez également utiliser un Int64 tenant dans un Int32, ou un double sans partie décimale tenant dans un Int32. Les valeurs de la propriété de durée de vie qui ne sont pas conformes à ces spécifications sont autorisées mais ne sont pas traitées comme une valeur de durée de vie du document explicite.
La valeur de durée de vie pour le document est facultative. Les documents sans valeur de durée de vie peuvent être insérés dans la collection. Dans ce cas, la valeur de durée de vie de la collection est respectée.
Les documents suivants ont des valeurs de durée de vie valides. Une fois que les documents sont insérés, les valeurs de durée de vie des documents remplacent les valeurs de durée de vie de la collection. Par conséquent, les documents seront supprimés après 20 secondes.
globaldb:PRIMARY> db.coll.insert({id:1, location: "Paris", ttl: 20.0})
globaldb:PRIMARY> db.coll.insert({id:1, location: "Paris", ttl: NumberInt(20)})
globaldb:PRIMARY> db.coll.insert({id:1, location: "Paris", ttl: NumberLong(20)})
Les documents suivants ont des valeurs de durée de vie non valides. Les documents sont insérés, mais la valeur de durée de vie du document n’est pas respectée. Par conséquent, les documents seront supprimés après 10 secondes en raison de la valeur de durée de vie de la collection.
globaldb:PRIMARY> db.coll.insert({id:1, location: "Paris", ttl: 20.5}) //TTL value contains non-zero decimal part.
globaldb:PRIMARY> db.coll.insert({id:1, location: "Paris", ttl: NumberLong(2147483649)}) //TTL value is greater than Int32.MaxValue (2,147,483,648).
Événements
Créer des applications intelligentes
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Module
Implémentation d’opérations ponctuelles d’Azure Cosmos DB for NoSQL - Training
Écrivez du code pour créer, lire, mettre à jour et supprimer des éléments dans Azure Cosmos DB for NoSQL.
Certification
Microsoft Certified : Azure Cosmos DB Developer Specialty - Certifications
Écrivez des requêtes efficaces, créez des stratégies d’indexation, gérez et approvisionnez des ressources dans l’API SQL et le Kit de développement logiciel (SDK) avec Microsoft Azure Cosmos DB.
Documentation
Gérer l’indexation dans Azure Cosmos DB for MongoDB
Cet article présente une vue d’ensemble des fonctionnalités d’indexation d’Azure Cosmos DB à l’aide d’Azure Cosmos DB for MongoDB
Configurer et gérer la durée de vie dans Azure Cosmos DB
Découvrir comment configurer et gérer la durée de vie sur un conteneur et un élément dans Azure Cosmos DB
Faire expirer des données dans Cosmos DB avec la durée de vie
Avec la durée de vie (TTL), Microsoft Azure Cosmos DB vide automatiquement les documents du système après une période déterminée.