From c4ef652200e4882b125fdf94239abdfdc6cd5daf Mon Sep 17 00:00:00 2001 From: Louis Chatriot Date: Tue, 19 Jan 2016 01:59:49 -0800 Subject: [PATCH] Update README.md --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d7a3161..77b909f 100755 --- a/README.md +++ b/README.md @@ -553,7 +553,7 @@ To create an index, use `datastore.ensureIndex(options, cb)`, where callback is * **fieldName** (required): name of the field to index. Use the dot notation to index a field in a nested document. * **unique** (optional, defaults to `false`): enforce field uniqueness. Note that a unique index will raise an error if you try to index two documents for which the field is not defined. * **sparse** (optional, defaults to `false`): don't index documents for which the field is not defined. Use this option along with "unique" if you want to accept multiple documents for which it is not defined. -* **expireAfterSeconds** (number of seconds, optional): if set, the created index is a TTL (time to live) index, that will automatically remove documents when the system date becomes larger than the date on the indexed field plus `expireAfterSeconds` +* **expireAfterSeconds** (number of seconds, optional): if set, the created index is a TTL (time to live) index, that will automatically remove documents when the system date becomes larger than the date on the indexed field plus `expireAfterSeconds`. Documents where the indexed field is not specified or not a `Date` object are ignored Note: the `_id` is automatically indexed with a unique constraint, no need to call `ensureIndex` on it. @@ -593,6 +593,13 @@ db.removeIndex('somefield', function (err) { // after their creation (db's timestampData option is true here) db.ensureIndex({ fieldName: 'createdAt', expireAfterSeconds: 3600 }, function (err) { }); + +// You can also use the option to set an expiration date like so +db.ensureIndex({ fieldName: 'expirationDate', expireAfterSeconds: 0 }, function (err) { + // Now all documents will expire when system time reaches the date in their + // expirationDate field +}); + ``` **Note:** the `ensureIndex` function creates the index synchronously, so it's best to use it at application startup. It's quite fast so it doesn't increase startup time much (35 ms for a collection containing 10,000 documents).