将 Mongo ObjectId 保存到另一个文档中

Vin*_*mes 3 mongoose mongodb node.js express mongoose-schema

我正在研究一个保存到 Mongo评论系统,它建议以下结构:

{
    _id: ObjectId(...),
    discussion_id: ObjectId(...),
    slug: '34db',
    posted: ISODateTime(...),
    author: {
              id: ObjectId(...),
              name: 'Rick'
             },
    text: 'This is so bogus ... '
}
Run Code Online (Sandbox Code Playgroud)

我想保存author.idObjectId用户评论的,我在请求中有这个值req.user._id

我需要给我的 Comment 模型什么数据类型才能接受这个值?

我试过:

const authorSchema = new Schema({
  id: ObjectId,
  username: String
});
Run Code Online (Sandbox Code Playgroud)

但这给 ReferenceError: ObjectId is not defined

我看到ObjectId 列为有效的架构类型但是,它仅在自动生成时出现。

user._idObjectId存储在注释中的正确方法是什么author.id,或者是否有更好的方法来完全存储引用?

Pau*_*aul 5

因此,您必须通过从 Mongoose 获取它来在架构文件中定义 ObjectId。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const ObjectId = Schema.Types.ObjectId;
Run Code Online (Sandbox Code Playgroud)

此处的文档中有一个完整的参考示例