【问题标题】:Meteor render data from embeded, nested collection来自嵌入式嵌套集合的 Meteor 渲染数据
【发布时间】:2015-07-12 17:02:44
【问题描述】:

我一直在尝试从嵌套集合中获取数据而没有任何运气,除了使用 html 中的点表示法之外似乎没有任何效果。

我想要的基本上是从嵌套集合中单独获取我需要的数据。我正在尝试为图像和音频文件构建文件上传,然后以一种简单的方式使用这些文件。我正在使用 cfs:standard-packages 和 cfs:filesystem 包。

下面的代码显示了我不想要的工作示例,例如获取整个文件对象并检索 html 中的数据。如果我可以在 mongo 命令中使用点符号,那将是完美的。我也可以满足于 _each 但我更愿意在每个 db 调用中只获取我需要的数据。如您所见,我在这里为整个文件对象传递了一个 id。 Uploads.find({_id:Session.get('getpic')}); BTW,实际文件存储在我本地服务器上的文件夹中。

收藏:

 {
    "_id" : "DXFkudDGCdvLpPALP",
    "original" : {
        "name" : "drink.png",
        "updatedAt" : ISODate("2015-04-30T07:14:56.000Z"),
        "size" : 127944,
        "type" : "image/png"
    },
    "uploadedAt" : ISODate("2015-07-11T21:53:32.526Z"),
    "copies" : {
        "uploads" : {
            "name" : "drink.png",
            "type" : "image/png",
            "size" : 127944,
            "key" : "uploads-DXFkudDGCdvLpPALP-drink.png",
            "updatedAt" : ISODate("2015-07-11T21:53:32.000Z"),
            "createdAt" : ISODate("2015-07-11T21:53:32.000Z")
        }
    }
}

HTML

<template name="renderImages">
{{#each showpic}}
    <img width="300" height="300" src="/projectuploads/{{copies.uploads.key}}"/>
{{/each}}

Javascript:

Template.renderImages.helpers({
    showpic: function() {
    return Uploads.find({_id:Session.get('getpic')});
  }
});

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

    像这样在find查询中指定返回的字段

    return Uploads.find({_id:Session.get('getpic')}, { fields: {'copies.uploads.key': 1} } );
    

    不过说一下。在这里,您查询 minimongo(在客户端),它位于 browsercache 中,因此它基本上是免费的。请注意publish 仅向客户提供您真正想要的那些字段。

    【讨论】:

    • 感谢您的回答。很抱歉,我仍然可以取回整个文件对象。我已经在 html 和 { fields: {'copies.uploads': 1} } ); 中使用 {{key}} 进行了尝试。和{字段:{'copies.uploads.key':1}});并且还跳过了 {{#each}} 并使用 {{showpic}} 而不是 {{key}} 和 { fields: {'copies.uploads.key': 1} } );是的,这只是一个工作示例,在真实应用程序中使用发布/订阅。谢谢。编辑:也试过 .fetch() 和 .findOne
    • 您必须遍历上传对象,这可能是不可能的,其他来自 html 或通过 js 中的 _each?无论如何,在数据库内进行操作可能不是一个好主意?
    猜你喜欢
    • 2012-11-24
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 2014-08-02
    相关资源
    最近更新 更多