当前位置: 首页 > 知识库问答 >
问题:

Mongoose Model.find->Edit->Callback?

梁建德
2023-03-14

很抱歉标题模糊,但我想做的是:我有2个猫鼬模型:帖子和用户(可以是帖子的作者)

const Post = new Schema({
    title: {type: String, required: true, unique: true},
    content: {type: String, required: true},
    date_created: {type: Date, required: true, default: Date.now},
    authorId: {type: String, required: true},             // ObjectId
    author: {type: Schema.Types.Mixed},
    page: {type: Boolean, required: true, default: false}
});

post.find()
mongoose向MongoDB发送查询
MongoDB返回文档
中间件,该中间件基于authorId属性
将找到的用户添加到postsauthor字段
post.find回调

这可能吗?

共有1个答案

艾骏
2023-03-14

是的,猫鼬文档引用和人口将为您做到这一点。

const Post = new Schema({
    // ...
    author: {type: mongoose.Schema.Types.ObjectId, required: true, ref: "User"}
});

ref:“User”告诉Mongoose使用“User”类型作为对象类型。请确保使用Mongoose定义了“用户”模型,否则将失败。

要加载完整对象图,请使用查询的填充方法:


Post
  .findOne(/* ... */)
  .populate('author')
  .exec(function (err, story) {
    // ...

  });

另外,我会在我的MongooseJS基础屏幕播放包中介绍这一点和更多内容。

 类似资料:
  • 在关联编辑器中打开当前脚本进行编辑。 Edit Edit 命令使用注册表中与 "edit" 操作关联的编辑器 (如果没有则为记事本) 打开当前脚本进行编辑. 然而, 如果已经有一个编辑器窗口中打开了这个脚本 (根据窗口标题判断), 那么会激活这个窗口而不打开编辑器的新实例. 在已编译脚本中执行此命令将没有效果. 相关提示,可以在多种编辑器中启用 AutoHotkey 语法高亮——请参阅下面。此外,

  • 在本节中,我们将向dataTable中的行展示添加编辑功能。 例子 Example Application 让我们创建一个测试JSF应用程序来测试上面的功能。 步 描述 1 在com.wenjiangs.test包下创建一个名为helloworld的项目,如JSF - Data Tables JSF - Display DataTable子章中JSF - Data Tables章节中所述。 2 修

  • 主页: Markdown Edit 平台: Windows 费用: 免费、开源 技术: C# 介绍 Markdown Edit 是一款支持 CommonMark 的开源的编辑器。 截图

  • 字幕编辑软件(Subtitle Edit )是一个视频字幕编辑器。其源代码也是免费提供的: ) Subtitle Edit 让您可以轻松地调整一个外挂的与视频同步的字幕。 主要功能: 以可视方式同步/调整一个副标题 (开始/结束位置和速度)。 创建/调整字幕行 翻译助手 (用于手动转换) 在SubRib, MicroDVD, Substation Alpha, SAMI, 更多之间转换 导入 Vo

  • SVG-Edit 是一个基于浏览器的图像编辑器,可进行常用的一些图像处理功能,无需服务器端支持,支持各种浏览器。如下图所示: 在线演示

  • Markdown Edit 是一个 CommonMark (又称 Markdown)编辑器,其专注于内容的编辑和键盘快捷键的使用。Markdown Edit 只有一个最小化的窗口镶边,并且被尽可能地设计为使用键盘快捷键就能完成大部分操作。在 Markdown Edit 中,没有主窗口,没有状态栏,没有标签页窗口或任何让人分心的东西,一切都专注于内容的编辑。 必要环境: Windows 7 Home

  •     一个国产专注于移动端的富文本编辑器 Current support 目前支持: Basic function 基础功能: 向当前块左部添加内容 删除当前块 完成当前块编辑 选择当前块类型 向当前块右部添加内容 Text Edit 文本编辑: 加粗 斜体 下划线 文字大小(增大文字、缩小文字) 文字颜色(黑色、红色、绿色、蓝色、黄色、粉色) 文本手势选择 Super Links 超链接: 超

  • real-edit 实现了真正多用户的实时编辑器,基于 WebSockets 技术实现,实现轻量级的操作转换算法,支持在线聊天和协作编辑。 运行 ./deploy.sh 开发 npm install -g forevernpm install -g grunt-clinpm installbower install debug 模式: ./startup_development.shgrunt i