NodeJS、Mongoose:如何使用 mongoose 获取相关数据

2024-06-23

我有 2 个集合,它们是一对多的关系。 如何使用猫鼬获取相关数据作为嵌套文档?

我有 2 个模式,它们是这样相关的..

var userSchema = mongoose.Schema({
  name : String,
  age : Number,
});

var postSchema = mongoose.Schema({
  title: String,
  body: String,
  user: {type: mongoose.Schema.Types.ObjectId, ref:'User'}
});

并且mongodb中有数据..

//user:
{
  _id:"5694934cab2816601db06291", 
  name:"John", 
  age:16
},
{
  _id:"5694934cab2816601db06292", 
  name:"Kim", 
  age:61
}

//post : 
{
  _id:"569494e5ab2816601db06293",
  title:"hi",
  body:"nice to meet you",
  user:"5694934cab2816601db06291"
},
{
  _id:"569494e5ab2816601db06294", 
  title:"hello",
  body:"how are you",
  user:"5694934cab2816601db06292"
}

使用猫鼬获得这样的结果的最佳方法是什么?

{
  _id:"569494e5ab2816601db06293", 
  title:"hi", 
  body:"nice to meet you", 
  user:{
         _id:"569494e5ab2816601db06294",
         name:"John", 
         age:16
  }
},
{
  _id:"569494e5ab2816601db06294",
  title:"hello",
  body:"how are you",
  user:{
         _id:"569494e5ab2816601db06292",
         name:"Kim", 
         age:61
  }
}

您可以通过填充 User 来完成此操作。

您可以尝试在查询中填充 User :

Code :

post.find().populate('User').exec(function(err,post){
    console.log(post);
    console.log(post.User);
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NodeJS、Mongoose:如何使用 mongoose 获取相关数据 的相关文章

  • NodeJS 和 PHP (Laravel) 集成用于 Socket.IO 实时聊天

    目前我有一个我写过的网站PHP通过Laravel 框架 我已经使用写了一个实时聊天nodeJS with 套接字IO and Express现在我想做的是将它集成到我已经编写的 Laravel 网站中 问题是聊天必须在主页中 当前由 Lar
  • 如何在nodejs中处理大量对象

    我想处理长度约为 100 000 的数组 而不会给 CPU 带来太多负载 我研究了流并偶然发现了 highlandjs 但我无法使其工作 我也尝试过使用 Promise 和分块处理 但它仍然给 CPU 带来很大的负载 如果需要 程序可能会很
  • 从另一台服务器读取 Node.js 中的大文件

    我有两台相互通信的服务器 Server1 向 Server2 请求文件的部分内容 并将收到的数据存储到一个文件中 Server2 应该接收每个请求并创建一个流管道传输数据 假设服务器2中存储的文件 目录 如下 bigfile gz bigf
  • 如何删除 node_modules - Windows 中的深层嵌套文件夹

    尝试删除后节点模块创建的目录npm install 源文件名大于文件支持的名称 系统 尝试移动到路径名称较短的位置 或者尝试 在尝试此操作之前重命名为较短的名称 I also tried shift delete and still hav
  • 如何使用node-sass将scss编译为css

    我有一个 master scss 其中包含许多来自其他 scss 文件的导入 如果我更改 scss 文件 master css 会自动生成 我只使用 NPM 没有使用 Gulp 或 Grunt 这应该保持不变 我当前的构建脚本 script
  • 使用 sudo 从 Node.js 运行命令

    作为 Node js 新手 我有这个问题 我看到在一些地方提到节点不应该以 root 身份运行 例如this http syskall com dont run node dot js as root 我只是使用节点来设置simpleWeb
  • 如何使 Puppeteer 在客户端与 ReactJS 应用程序一起工作

    我对 React 相当陌生 我正在开发一个应用程序 它将拍摄网页的实际屏幕截图 并且该应用程序可以在所拍摄的屏幕截图上绘制和添加涂鸦 我最初使用 html2canvas 和 domToImage 来获取客户端屏幕截图 但它不会完全按照网页中
  • PhoneGap - 构建 PhoneGap Android 应用程序在 Linux 上出现编译错误

    我在我的 linux ubuntu 12 04 机器上构建phonegap android 应用程序时遇到错误 我已经安装了nodejs 将JAVA HOME ANT HOME ANDROID HOME vars和 JAVA HOME bi
  • 如何在 JavaScript 中获取 Application Insights 操作 id?

    我有一个用 javascript 编写的 Azure Function 应用程序 集成了 Application Insights const AppInsights require applicationinsights AppInsig
  • Mongodb启动时出错

    当我启动 mongodb 时 它立即崩溃并返回到正常的命令行 如果有帮助的话 我在 Mac 上运行 MEAN 堆栈 下面是错误 sudo mongod Sun Jun 1 21 01 01 728 initandlisten MongoDB
  • 箭头函数不会在 ES6 类中绑定 `this` 吗? [复制]

    这个问题在这里已经有答案了 我很惊讶这不起作用 我在跑iojs2 3 0 与 harmony arrow functions flag class Foo constructor this foo foo sayHi return gt t
  • Mongoose 填充与对象嵌套

    使用之间是否有任何性能差异 查询的处理时间 猫鼬种群 http mongoosejs com docs populate html和直接对象包含 每种应该什么时候使用 猫鼬种群示例 var personSchema Schema id Nu
  • Vue-konva 遇到错误:必须使用 import 加载 ES 模块

    我正在努力实施Vue konva按照以下步骤进入我的应用程序文档在这里 https www npmjs com package vue konva 但我遇到了以下错误 Must use import to load ES Module Us
  • Mongoose:populate() / DBref 或数据重复?

    我有两个收藏 Users Uploads 每次上传都有一个User与之相关 当我需要知道他们的详细信息Upload被查看 最佳做法是在上传记录中复制此数据 还是使用填充 http mongoosejs com docs populate h
  • HTTP 标头大小写

    我正在处理服务器 它不接受非大写的标头 不幸的是我不能用它做太多事情 var headers headers User Agent Mozilla 5 0 Windows NT 6 1 Win64 x64 AppleWebKit 537 3
  • Grunt:自定义任务开发指南

    我需要实现一个自定义的 Grunt 任务 但我完全不知道开发工作流程 如何开发自定义任务并在开发过程中使用 npm 模拟加载它 除了使用之外 还有其他分配自定义任务的方法吗 npm 我的意思是 我可以分发一个定义整个自定义 Grunt 任务
  • Eslint 不忽略 node_modules 文件夹

    不知何故更新后Babel from 6 to 7 my eslint开始发出这样的警告node modules 所以 根据我的理解node modules文件夹不会被忽略 这就是问题出现的原因 所以 通读eslint docs https
  • 防止 Node.js 中的 SQL 注入

    是否有可能以与 PHP 具有防范 SQL 注入的预准备语句相同的方式防止 Node js 中的 SQL 注入 最好使用模块 如果是这样 怎么办 如果不 有哪些例子这可能会绕过我提供的代码 见下文 一些背景 我正在制作一个 Web 应用程序
  • Promise链基本问题

    我正在尝试理解 Promise 我创建了一些有效的承诺链 而另一些则无效 我已经取得了进步 但显然缺乏基本概念 例如 以下承诺链不起作用 这是一个愚蠢的例子 但说明了问题 我正在尝试在链中使用 Node 的函数 randomBytes 两次
  • 在 OpenShift 上部署 Create React App:EACCES:权限被拒绝,打开 '/home/node/app/.eslintcache'

    我正在尝试使用 Dockerfile 在 OpenShift 上部署 Create React App webapp OpenShift 构建成功完成 当我访问路线时 我可以看到应用程序运行 1 秒 然后屏幕上出现此错误 Failed to

随机推荐

  • Grails:在 gsp 中显示创建的图像

    我对 Grails 很陌生 所以这个问题可能有一个非常简单的答案 我正在尝试在 gsp 中显示动态创建的图像 图像不存储在数据库中 它是在控制器中动态创建的 我本质上拥有的是一个 gsp 它有一个接受一组用户输入的表单 requestGra
  • 带参数的 Laravel-4 路由被调用两次

    我注意到我正在使用 laravel 开发的应用程序的激活路线发生了奇怪的行为 并且经过几个小时的 xdebug 等调试后 我发现我的路线有时实际上被调用了两次 为了重现这种情况 我使用默认文件创建了一个全新的 Laravel 项目 并添加了
  • 如何更改 dplyr 链中数据第一行的列名称

    我尝试使用数据的第一行重命名列名称 使用第一行数据作为 r 中的列名称 https stackoverflow com questions 32054368 use first row data as column names in r 将
  • 我在绘制球体及其曲线时遇到问题

    我正在尝试在球体上绘制一条曲线 但无法同时绘制它们 我确定了一些要点欧几里得范数10对于我的曲线 以及绘制球体的其他一些点半径10 分别如下 曲线点 random numbers basevalues np linspace 0 9 0 9
  • 快速成功退出 C++,分配大量对象

    我正在寻找一种方法来快速退出已使用 C 类在内存中分配大量结构的 C 程序正确完成 但在程序中最后 返回 后 所有自动析构函数都会启动 问题是程序通过大量 C 类结构分配了大约 15GB 内存 并且此自动析构过程需要大约还需要 1 个小时才
  • 了解截断二十面体的几何形状,以进行渲染

    我正在尝试使用可点击区域来渲染像上面这样的截断二十面体Three js http stemkoski github io Three js js Three js 我找到了正二十面体的代码 var t 1 Math sqrt 5 2 var
  • 指定 Xaml 中开始标记和结束标记之间的属性

    考虑以下 Xaml
  • 逻辑应用 blob 触发器未在子文件夹上触发

    我指的是这个反馈 在子文件夹中添加文件时触发 Azure 存储 Blob 触发器 https feedback azure com forums 287593 logic apps suggestions 20164843 azure st
  • 使用cleartool findmerge 命令在clearcase 中自动合并

    我正在编写一个脚本来自动执行一些合并操作 我想使用以下命令来执行此操作 cleartool findmerge file name fver main branch name LATEST merge log NUL c Automatic
  • AttributeError:“SQLAlchemy”对象没有属性“模型”[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 AttributeError sqlalchemy 对象没有属性 模型 有时会出现 ModuleNotFoundError 没有名
  • 将数据传递给 vue.js 中的组件

    我正在努力理解如何在 vue js 中的组件之间传递数据 我已经通读了几遍文档并查看了许多 vue 相关问题和教程 但我仍然不明白 为了解决这个问题 我希望能帮助完成一个非常简单的例子 在一个组件中显示用户列表 完成 单击链接 完成 时将用
  • 可变字体和常规字体有什么区别

    我正在阅读有关可变字体的内容 但我不明白这个概念 有 5 个注册轴 wght wdth ital slnt opsz 字体粗细已经预先存在 我们每天都会在 CSS 中使用它 那么可变字体和常规字体有什么区别呢 另外 如果我输入一系列font
  • 从哪个 Linux 内核/libc 版本开始,Java Runtime.exec() 在内存方面是安全的?

    在工作中 我们的目标平台之一是运行 Linux 的资源受限的迷你服务器 内核 2 6 13 基于旧 Fedora Core 的自定义发行版 该应用程序是用 Java Sun JDK 1 6 04 编写的 Linux OOM Killer 配
  • 如何改变TDateTimePicker的颜色?

    如何更改 a 的颜色TDateTimePicker A 日期和时间选择器可以有一种颜色 通常这是通过设置来完成的Color procedure TForm1 FormCreate Sender TObject begin DateTimeP
  • 将文档的文档 ID 添加到其自己的 Firestore 文档 - Swift 4

    如何将我刚刚添加到 firestore 数据库的文档的文档 ID 添加到该文档 我想这样做 以便当用户检索 乘车 对象并选择预订它时 我可以知道他们预订了哪些特定乘车 我面临的问题是 在创建文档 ID 之前 您无法获取文档 ID 因此将其添
  • Spring MVC 静态资源部分工作

    我有一个基本的目录应用程序 运行良好 只是它似乎有时只能找到我使用 mvc resources 标签配置的静态资源 我对主板的搜索发现了与处理程序映射相关的问题 但我的问题似乎有所不同 具体来说 当通过映射到 person 的方法调用 Pe
  • React Native 动画 setValue() 问题?

    实际上我正在尝试设置动画的值设定值 after 动画 timing 已完成并希望在循环动画中使用此更新的动画值 Initialising animation value 50 const leftAnim useRef new Animat
  • 获取在参数中解构的对象[重复]

    这个问题在这里已经有答案了 假设我有一个函数 它将解构对象作为箭头函数中的参数 const myFunc a b c gt 是否有任何语法或语法可以让我将整个对象作为单个值获取 由于箭头函数没有绑定arguments 我不能用那个 是否可以
  • 单个存储库的 Azure DevOps 权限

    假设我在 ADO 上创建了一个新项目 MyProject 其中 我有 2 个存储库 MyRepo1 和 MyRepo2 我想邀请其他用户向 MyRepo1 贡献代码 但不希望他们看到 MyRepo2 如何才能做到这一点 我尝试为 MyRep
  • NodeJS、Mongoose:如何使用 mongoose 获取相关数据

    我有 2 个集合 它们是一对多的关系 如何使用猫鼬获取相关数据作为嵌套文档 我有 2 个模式 它们是这样相关的 var userSchema mongoose Schema name String age Number var postSc