Mongoose:在一次调用中填充多个查询

2024-01-04

在 Mongoose 中,我可以使用查询填充来在查询后填充其他字段。我还可以填充多个路径,例如

Person.find({})
 .populate('books movie', 'title pages director')
 .exec()

然而,这将生成对书籍的查找,收集标题、页数和导演的字段,也会生成对电影的查找,收集标题、页数和导演的字段。我想要的是仅从书籍中获取标题和页面,从电影中获取导演。我可以做这样的事情:

Person.find({})
 .populate('books', 'title pages')
 .populate('movie', 'director')
 .exec()

这给了我预期的结果和查询。

但是有没有办法使用与第一个片段类似的“单行”语法来实现第二个片段的行为?原因是我想以编程方式确定填充函数的参数并将其输入。我无法对多个填充调用执行此操作。


在研究了猫鼬的源代码后,我用以下方法解决了这个问题:

var populateQuery = [{path:'books', select:'title pages'}, {path:'movie', select:'director'}];

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

Mongoose:在一次调用中填充多个查询 的相关文章

随机推荐

  • 如何更改 Visual Studio 2012 Express 项目模板?

    例如 我不希望我的类和接口符合 StyleCop 在非 Express 版本中 我们可以在以下位置找到并更改类模板 C Program Files x86 Microsoft Visual Studio 11 0 Common7 IDE I
  • 更改 SFSafariViewController 的色调颜色?

    正如标题所说 如何更改 iOS 9 中新的 SFSafariViewController 的整体色调颜色 iOS 10 的一些消息 现在我们有两个属性来控制整体外观SFSafariViewController source link htt
  • Java Runtime.getRuntime().exec() 带引号

    我正在尝试通过 linux 上的 exec 调用运行 ffmpeg 但是我必须在命令中使用引号 ffmpeg 需要它 我一直在查看 processbuilder 和 exec 的 java 文档以及 stackoverflow 上的问题 但
  • 对服务与工厂感到困惑

    据我了解 当在工厂内部时 我返回一个被注入控制器的对象 当在服务内部时 我正在使用以下方法处理对象this并且不返回任何东西 我假设服务是始终是单身人士 并且一个新工厂对象被注入到每个控制器中 然而 事实证明 工厂对象也是单例对象吗 演示示
  • JSF MVC设计问题

    我有一个 JSF 支持 bean 设计问题 现在 我的支持 bean 保存 UI 显示信息和业务模式数据 人们建议模型和视图应该分开 那么创建不同的 bean 来保存 UI 显示数据并让支持 bean 引用它是个好主意吗 那么创建不同的 b
  • 我可以只选择 MYSQL 中的一列而不是全部,以使其更快吗?

    我想做这样的事情 query mysql query SELECT userid FROM users WHERE username username the user id 因为我想要的只是与用户名对应的用户ID 通常的方法是 query
  • 如何格式化 SQLCMD 输出

    我正在使用下面的命令行使用 SQLCMD 运行 SQL 查询 sqlcmd S Server Q select top 100 From people d people t 10 该表有 20 列 当我查看输出命令行窗口时 文本会换行并使其
  • 客户端 MVC 与服务器 MVC

    我希望从其他用户那里获得一些关于服务器端 MVC 优势的意见 拥有许多 javascript 库的强大功能 服务器端 MVC 服务器还有什么用处呢 您可以轻松地使用带有模板和 REST API 的客户端 MVC 来创建响应速度更快的应用程序
  • subprocess.Popen,从子进程(子进程)获取变量[重复]

    这个问题在这里已经有答案了 我想知道如何处理它 我从子进程到父进程获取变量 值 我正在将子进程作为脚本运行 父级看起来像 import subprocess p subprocess Popen abaqus python getData
  • 为什么负载不能绕过同一核心上的另一个线程从写入缓冲区写入的值?

    如果CPU核心使用写缓冲区 则负载可以从写缓冲区绕过最近的存储到引用的位置 而无需等到它出现在缓存中 但是 正如它所写的记忆一致性和连贯性入门 https lagunita stanford edu c4x Engineering CS31
  • Azure AD B2C 在注册策略中预填充自定义属性

    从 Web 应用程序 ASP Net MVC 调用时 Azure AD B2C 是否支持在注册策略中预填充自定义属性 我们可以创建自定义 SignUp 属性 但我们无法在文档中找到如何传递值来填充自定义属性的规范 如果开箱即用不支持此功能
  • 自定义绑定类无法正常工作

    目前我正在研究 WPF 数据绑定 但遇到了一个我不明白的问题 所以我把问题发布在这里 也许你已经知道地理出了什么问题 首先 我在Windows Vista 32位下使用Visual Studio 2008 问题也存在于Windows 7 R
  • 使用哈希合并全局内存写入

    我的问题涉及合并全局写入到 CUDA 中数组的一组动态变化的元素 考虑以下内核 global void kernel int n int odata int idata int hash int i blockIdx x blockDim
  • 未捕获的类型错误:无法在“Node”上执行“appendChild”:参数1不是“Node”类型[重复]

    这个问题在这里已经有答案了 var line p strong name strong message field message body und 0 value p console log line console log docume
  • /admin/ 处的 NoReverseMatch 未找到带有参数“()”和关键字参数“{}”的“注销”

    我读过了this one https stackoverflow com questions 10145583 django 1 4 and noreversematch at admin error 但我使用的是 Django 1 5 我
  • 如何使用javascript获取会话值

    我有一个类来处理会话变量 这是附上的示例 namespace General public class Session public Session public static string UserID get return HttpCo
  • Fortran 可分配的内部存储器表示

    我想知道 fortran 可分配数组的内部内存表示是什么 我理解这比原始指针更复杂一点 因为形状和等级也必须存储 我还猜想它取决于实现 因为我在中找不到信息Fortran 2003 标准 http www j3 fortran org do
  • 如何在 nextjs 13.2 路由处理程序中访问请求正文

    我试图向我的 api 发送一个 post 请求 但是 尝试在路由处理程序中访问请求正文会导致以下错误 Code export async function POST request Request const postBody postPr
  • Django - 模型中 1 个字段的自定义 getter

    我正在为外部 Oracle DB 编写一个模型 我需要从该模型中提取信息到我的项目中 Oracle DB 中的字段之一是 XMLType 它托管大部分数据 需要通过 getClobVal 方法提取这些数据 而不是直接查询 我想知道 Djan
  • Mongoose:在一次调用中填充多个查询

    在 Mongoose 中 我可以使用查询填充来在查询后填充其他字段 我还可以填充多个路径 例如 Person find populate books movie title pages director exec 然而 这将生成对书籍的查找