代码之家  ›  专栏  ›  技术社区  ›  Jonathan Wheeler Ben

如何在没有多个mongo查询的情况下使用Blaze in Meteor一次翻阅一个文档

  •  0
  • Jonathan Wheeler Ben  · 技术社区  · 8 年前

    我有一个任务文档的mongo数据库,其中的任务看起来像这样:

    {
      "name" : "Clean room",
      "points" : 5
    }
    

    我想要一个简单的界面,用户可以有一个分类的旋转木马,在那里他们可以循环通过他们的任务的rolodex,但一次只能看到一个任务。

    我考虑过做一些类似mongo的查询,比如

    Tasks.find({}).limit(1).skip(index);
    

    但无论是对于DB请求的数量还是用户请求所需的时间而言,这似乎都非常低效。

    有没有一种方法可以让查询返回一个游标对象,然后只显示当前的索引任务?我会犹豫是否将光标改为本地数组,因为这样会失去反应性。如果我不需要安装分页或反应式数组/dict库,我将获得额外的积分,但我欢迎您的建议。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Michel Floyd    8 年前

    决定用一个附加的辅助对象显示哪个元素怎么样?

    <template name="myTemplate">
      {{#each tasks}}
        {{#if taskVisible @index}}
          {{> oneTask}}
        {{/if}}
      {{/each}}
    </template>
    

    哪里 tasks 是返回光标和 oneTask 是要用于显示单个任务的模板。

    那么这只是一个写 taskVisible 决定给定任务是否可见的助手。