我正在研究commenting system saved into Mongo,它建议采用以下结构:
{
_id: ObjectId(...),
discussion_id: ObjectId(...),
slug: '34db',
posted: ISODateTime(...),
author: {
id: ObjectId(...),
name: 'Rick'
},
text: 'This is so bogus ... '
}
我想将author.id
保存为用户评论的ObjectId
,我在请求中有此值req.user._id
我需要哪种数据类型才能让我的评论模型接受此值?
我试过了:
const authorSchema = new Schema({
id: ObjectId,
username: String
});
但是这会给ReferenceError: ObjectId is not defined
我看到ObjectId listed as a valid Schema type但是,只有在自动生成时才会显示。
将user._id
ObjectId作为author.id
存储在注释中的正确方法是什么,或者是否有更好的方法来完整存储引用?
答案 0 :(得分:1)
所以你必须通过从Mongoose获取它来在你的模式文件中定义ObjectId。
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ObjectId = Schema.Types.ObjectId;
在文档here
中有完整的参考示例