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

Posted

技术标签:

【中文标题】将 Mongo ObjectId 保存到另一个文档中【英文标题】:Save a Mongo ObjectId into another document 【发布时间】:2017-06-22 05:40:09 【问题描述】:

我正在研究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中有这个值

我需要为我的 Comment 模型提供什么数据类型才能接受此值?

我试过了:

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】:

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

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

在文档here中有一个完整的引用示例

【讨论】:

以上是关于将 Mongo ObjectId 保存到另一个文档中的主要内容,如果未能解决你的问题,请参考以下文章

如何将子文档数组的 ObjectId 引用到另一个模型

用于组的 mongo 排序子文档

Mongo 聚合计数子文档(计数回复评论)

根据登录用户的 ObjectID 从 Mongo 获取数据

使用 $cond 运算符在我的 mongo 查询中添加一个字段

如何将 Mongodb 聚合管道文档返回到一个文档?