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

时间:2017-02-05 03:11:41

标签: node.js mongodb express mongoose mongoose-schema

我正在研究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存储在注释中的正确方法是什么,或者是否有更好的方法来完整存储引用?

1 个答案:

答案 0 :(得分:1)

所以你必须通过从Mongoose获取它来在你的模式文件中定义ObjectId。

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

在文档here

中有完整的参考示例