Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
SE APLICA A: MongoDB
La funcionalidad de período de vida (TTL) permite la expiración automática de los datos de la base de datos. La API de Azure Cosmos DB para MongoDB utiliza las funcionalidades de TTL básicas de Azure Cosmos DB. Se admiten dos modos: establecer un valor de TTL predeterminado en toda la colección y establecer valores de TTL individuales para cada documento. La lógica que rige los índices de TTL y los valores de TTL por documento en la API de Azure Cosmos DB for MongoDB es la misma que en Azure Cosmos DB.
Para habilitar TTL de forma universal en una colección, es preciso crear un "índice TTL" (índice de período de vida). El índice TTL es un índice del campo _ts
con un valor "expireAfterSeconds".
Ejemplo de MongoShell:
globaldb:PRIMARY> db.coll.createIndex({"_ts":1}, {expireAfterSeconds: 10})
El comando del ejemplo anterior creará un índice con la funcionalidad TTL.
La salida del comando incluye varios metadatos:
{
"_t" : "CreateIndexesResponse",
"ok" : 1,
"createdCollectionAutomatically" : true,
"numIndexesBefore" : 1,
"numIndexesAfter" : 4
}
Una vez creado el índice, la base de datos eliminará automáticamente todos los documentos de la colección que no se hayan modificado en los últimos 10 segundos.
Nota
_ts
es un campo específico de Azure Cosmos DB y no es accesible desde los clientes de MongoDB. Es una propiedad reservada (sistema) que contiene la marca de tiempo de la última modificación del documento.
Ejemplo de Java:
MongoCollection collection = mongoDB.getCollection("collectionName");
String index = collection.createIndex(Indexes.ascending("_ts"),
new IndexOptions().expireAfter(10L, TimeUnit.SECONDS));
Ejemplo de 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);
También se admiten valores TTL por documento. Los documentos deben contener una propiedad de nivel de raíz "ttl" (en minúscula), y se debe haber creado un índice TTL para la colección como se ha descrito anteriormente. Los valores TTL establecidos en un documento anulan el valor TTL de la colección.
El valor TTL debe ser int32. Como alternativa, un valor int64 que se ajuste a un valor int32 o uno doble sin la parte decimal que se ajuste a un valor int32. Se permiten valores de la propiedad TTL que no se ajusten a estas especificaciones, pero no se tratan como un valor TTL de documento significativo.
El valor TTL del documento es opcional; los documentos sin valor TTL se pueden insertar en la colección. En este caso, se respeta el valor TTL de la colección.
Los documentos siguientes tienen valores TTL válidos. Una vez que se insertan los documentos, los valores TTL de estos reemplazan los valores TTL de la colección. Por tanto, los documentos se eliminan a los 20 segundos.
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)})
Los documentos siguientes tienen valores TTL no válidos. Los documentos se insertan, pero no se respeta el valor TTL del documento. Por tanto, los documentos se eliminarán a los 10 segundos debido al valor TTL de la colección.
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).
Eventos
Compilación de Intelligent Apps
17 mar, 21 - 21 mar, 10
Únase a la serie de reuniones para crear soluciones de inteligencia artificial escalables basadas en casos de uso reales con compañeros desarrolladores y expertos.
Regístrese ahoraCursos
Módulo
Implementación de operaciones de punto de Azure Cosmos DB for NoSQL - Training
Escriba código para crear, leer, actualizar y eliminar elementos en Azure Cosmos DB for NoSQL.
Certificación
Microsoft Certified: Azure Cosmos DB Developer Specialty - Certifications
Escribe consultas eficaces, crea directivas de indexación, administra y aprovisiona recursos en la API de SQL y el SDK con Microsoft Azure Cosmos DB.
Documentación
Administración de la indexación en Azure Cosmos DB for MongoDB
En este artículo, se presenta información general sobre las funcionalidades de indexación de Azure Cosmos DB mediante Azure Cosmos DB for MongoDB
Configurar y administrar el período de vida en Azure Cosmos DB
Aprenda a configurar y administrar el período de vida en un contenedor y un elemento de Azure Cosmos DB
Hacer que expiren datos en Azure Cosmos DB con período de vida
Con TTL, Microsoft Azure Cosmos DB purga automáticamente los documentos del sistema después de un período de tiempo.