Node.js MongoDB架构-调用createIndex()设置expireAt时出错

Node.js MongoDB架构-调用createIndex()设置expireAt时出错,node.js,mongodb,Node.js,Mongodb,我编写了模式,但在运行Node.js服务器时,出现了以下错误: MySchema.createIndex不是一个函数 我用它来设置记录的过期时间。这是我的代码: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var config = require('../../config.js'); var tc = new Date(); var te = tc.setSeconds(tc.getSeconds + c

我编写了模式,但在运行Node.js服务器时,出现了以下错误:

MySchema.createIndex不是一个函数

我用它来设置记录的过期时间。这是我的代码:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var config = require('../../config.js');

var tc = new Date();
var te = tc.setSeconds(tc.getSeconds + config.EXPIRE_TOKEN_TIME.ROOM_TOKEN);

var MySchema = new Schema({
    name: String,
    guide: String,
    leader: String,
    partecipants_counter : { type: Number, default: 0},
    event_counter : { type: Number, default: 0},
    createAt: { type: Date, default: tc},
    expireAt: { type: Date, default: te},
    partecipants: [],
    events : [ {
            id : Number,
            data: String,
            user: String
            } ]
});

MySchema.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 180 } );

module.exports = mongoose.model(config.DATA_TYPE.ROOM, MySchema);
语法应该是

MySchema.index( { "expireAt": 1 }, { expireAfterSeconds: 180 } );
更一般的示例:-

var animalSchema = new Schema({
  name: String,
  type: String,
  tags: { type: [String], index: true } // field level
});

animalSchema.index({ name: 1, type: -1 }); // schema level
语法应该是

MySchema.index( { "expireAt": 1 }, { expireAfterSeconds: 180 } );
更一般的示例:-

var animalSchema = new Schema({
  name: String,
  type: String,
  tags: { type: [String], index: true } // field level
});

animalSchema.index({ name: 1, type: -1 }); // schema level

嗯,这个错误现在似乎不存在,但我不能继续,因为这是我的变量
tc
te
的转换,失败了。。。通过使用
Date.now
没有强制转换,但是
.setSeconds
函数不可用。expireAt需要以毫秒为单位的日期(Date.now)或对象(new Date())?我只是在get Seconds:)中错过了()。谢天谢地,这个错误现在似乎不存在,但我不能继续,因为这是我的变量
tc
te
的转换,失败了。。。通过使用
Date.now
没有强制转换,但是
.setSeconds
函数不可用。expireAt需要以毫秒为单位的日期(Date.now)或对象(new Date())?我只是在get Seconds:)中错过了()。谢谢