收到错误消息说MongoDB中存在嵌套模式

时间:2018-10-04 04:46:34

标签: mongodb express

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
    name: String,
    created: new Date()
})

const user = mongoose.model('user', userSchema);

module.exports = user;

添加新的Date()后,我收到一条错误消息: TypeError:undefined处的未定义类型created   您是否尝试过嵌套架构?您只能使用引用或数组进行嵌套。

2 个答案:

答案 0 :(得分:3)

您正在定义架构,只需要一个类型,而不是对象。不用使用new Date()而是使用Date

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
    name: String,
    created: Date
})

const user = mongoose.model('user', userSchema);

module.exports = user;

答案 1 :(得分:0)

我想您的意图是拥有一个Date字段类型,其猫鼬值为当前日期时间的default ...因为您将该字段命名为created。我会更进一步,将其命名为created_At ...

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
    name: String,
    created_At: { type: Date, default: Date.now }
})

const user = mongoose.model('user', userSchema);

module.exports = user;

现在,每次创建新的created_At模型时,您都会自动填充user日期字段。

我们专门说过我们希望字段是什么类型,我们还添加了一个default值。

您可以阅读有关mongoose defaults here

的更多信息