MongoDB - 在父文档中填充 GridFS 文件元数据

2024-05-25

我使用 NodeJS 与 Express、MongoDB、Mongoose 和 GridFS 来上传和检索文件。

我想通过 ID 引用其他文档中的文件,并在查询其他文档时填充文件元数据。

例如:如果我有一个包含这样的文档的“用户”集合......

{
   _id:   ObjectId("554dfeb59e78d9081af2404f"),
   name:  "John Doe",
   image: ObjectId("55b61ae329c44b483665bafc")
}

...我想做这样的事情...

User.findById(req.params.id)
  .populate('image')
  .exec(function(err, user) {...})

...这应该让我可以访问文件元数据 - 例如文件名...

user.image.filename

有任何想法吗?


您可以为 GridFS 元数据集合定义一个架构并在用户架构中引用它:

//define Model for metadata collection.
var GFS = mongoose.model("GFS", new Schema({}, {strict: false}), "fs.files" );

var UserSchema = Schema({
    image: {type: Schema.Types.Object, ref: 'GFS' } // refer the model
});

var User = mongoose.model('User', UserSchema);

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

MongoDB - 在父文档中填充 GridFS 文件元数据 的相关文章

随机推荐

  • WHERE 子句中的可选参数[重复]

    这个问题在这里已经有答案了 假设有一个具有 3 个参数的存储过程 在所有可能性中 我希望通过一个单一的方法来实现这一目标WHERE子句不会失去对 using 的控制 AND OR 太多了 Example Params CITY VARCHA
  • 如何匹配撇号('),除非它被转义(\')?

    是否可以为此构造一个正则表达式 如果是这样 如果有人展示如何操作 我将不胜感激 使用这个正则表达式
  • 用户界面上的“ID”或“Id”

    我工作的 QA 经理刚刚告诉我 我的桌面应用程序存在一个错误 因为登录提示应该是 操作员 ID 而却是 操作员 ID 她的论点是 本我 指的是弗洛伊德 精神装置 的自我部分 在语义上是不正确的 现在 作为一名肛门工程师 AE 我当然必须去查
  • 我如何加入 Eloquent:关系?

    我的查询是这样的
  • Paypal一键购买

    是否可以使用Paypal API实现一键购买 或 Paypal 自适应 API 而不是每次都要求用户登录 提前致谢 Johnny 要获得 Paypal 的 一键结账 体验 解决方案是 预先批准的付款流程 下图显示了一个过程中的基本控制流程前
  • Jquery 对话框部分视图服务器端验证“保存”按钮单击

    我有一个显示数据的表格 表格的每一行都有编辑按钮 单击编辑按钮时 将出现一个 jquery 对话框 其中包含用于编辑用户信息的表单以及保存和取消按钮 表单只不过是部分视图 按钮是部分视图的一部分
  • 将数据从 Kafka 存储传输到 Kafka 主题

    我想在卡夫卡做这样的事情 继续将数据存储在 KStream Ktable Kafka store 中 当我的应用程序收到特定事件 数据时 仅将上述存储中的特定数据集发送到主题 我们可以在卡夫卡中做到这一点吗 我认为单独使用 Kafka 消费
  • Java 8 Nashorn:控制台几乎无法使用

    我在 OSX 10 9 2 上使用 Java 8 build 1 8 0 b132 我正在使用 Java 8 中的新 JavaScript 运行时 Nashorn 我在用Library Java JavaVirtualMachines jd
  • 如何从 mysqldump 中删除表

    如何删除 mysqldump 中包含大量表的一个大表的输出 我有一个 6 GB 大的数据库转储 但其中 90 只是一个日志记录表 cache entries 我的备份中不再需要它 如何轻松删除转储中描述大型日志记录表的部分 我找到了这个 h
  • 当键位于父类中时,如何将一对多集合映射到连接的子类

    我想将一对多集合映射到子类 但集合的键是父类的属性 目前我正在映射 AbstractFoo Foo 和 Bar 类 如下所示
  • 检测 IMG 元素何时在 Angular 2+ 中加载

    我在用Angular 2我需要检测图像是否已加载到图像标签中 有这样的活动吗 像这样的东西 img img
  • 将 .NET 类库(主要定义 CRUD 操作)公开为服务

    公开现有内容的最佳 有效和最快的方法是什么 类 图书馆 主要定义 CRUD 操作 作为service 周转基金服务 or WCF数据服务 以便它可以与银光 or Ajax 在那儿tools 代码生成器 RAD 工具 哪些可以支持这个 预先感
  • 如何使用授权 API 设置部分身份验证

    好的 我正在通过 Authorize net API 设置部分付款 以便能够使用多张卡支付单笔余额 费用 我假设他们的部分身份验证功能涵盖了我的用例 但在测试中 我可以在此处使用 API 实时控制台向您展示一个问题 https develo
  • CSS:100% 宽度和背景?

    在我的页面中 有 2 3 个部分的宽度和背景为 100 当我全屏打开它时 一切正常 但当屏幕小于 960px 本节内容的宽度 时 背景图像不是整个页面 右侧的瞬间隐藏在没有背景的地方 它是白色的 你可以在这里明白我的意思 http mico
  • 如何将SSRS共享数据集和数据源直接导入BIDS 2008?

    Using SSRS 报表服务器 10 50 1600 1 BIDS Visual Studio 9 0 30729 4462 来自同一域和网络上的远程客户端 不在 SSRS 服务器上本地 我希望能够将报表服务器上的现有共享数据源和共享数据
  • mongodb/node.js 中单文档并发读写操作的问题

    编辑 6 15我尝试运行相同的代码 在调用之前添加延迟 doSafePush 再次收到 ConcurrencyDBError 时 即执行return when resolve wait delay 35 then function doSa
  • 如何找到 JAR:/home/hadoop/contrib/streaming/hadoop-streaming.jar

    我正在练习有关 Amazon EMR 的复数视角视频教程 我被困住了 因为我收到此错误而无法继续 Not a valid JAR home hadoop contrib streaming hadoop streaming jar 请注意
  • git 查找胖提交

    是否可以获取有关每次提交中的更改浪费了多少空间的信息 以便我可以找到添加了大文件或大量文件的提交 这一切都是为了尝试减少 git repo 的大小 变基并可能过滤提交 你可以这样做 git ls tree r t l full name H
  • JavaScript IDE/编译器

    现在 我希望你们中的一些人能够理解我的要求 我是编程新手 我在 Codecademy com 上了解了 JavaScript 我使用 labs codecademy com 来编写 JavaScript 但它有限制 对于编程新手来说 我可以
  • MongoDB - 在父文档中填充 GridFS 文件元数据

    我使用 NodeJS 与 Express MongoDB Mongoose 和 GridFS 来上传和检索文件 我想通过 ID 引用其他文档中的文件 并在查询其他文档时填充文件元数据 例如 如果我有一个包含这样的文档的 用户 集合 id O