Node.js TTL Не работает для истечения срока действия данных

Помогите, пожалуйста, я использую node.js и mongodb. Я хочу использовать TTL (Time TO Live) для истечения срока действия коллекции в моей базе данных, но это не работает, и ошибка покажет: TypeError: Невозможно прочитать свойство 'createIndex' из undefined и вот мой код: спасибо заранее

var MongoClient = require('mongodb').MongoClient;
var mongodbURI = 'mongodb://localhost:27017/ex1';
var startDate = new Date();

MongoClient.connect(mongodbURI,setupCollection);

function setupCollection(err, db) {
if(!err) {
console.log("We are connected");
collection=db.collection("test1");
db.test1.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 300 } )

        }
 }

1 ответ

Решение

Этот синтаксис

db.test1

чтобы получить коллекцию поддерживается mongo оболочка, но при использовании node.js Драйвер вы должны получить коллекцию, как это:

db.collection("test1")

так что в вашем случае это так:

db.collection("test1").createIndex( { "createdAt": 1 }, { expireAfterSeconds: 300 } )

Вот соответствующие документы.

Другие вопросы по тегам