首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤嵌套文档时发布

过滤嵌套文档时发布
EN

Stack Overflow用户
提问于 2015-06-26 08:15:02
回答 1查看 14关注 0票数 0

我想知道如何发布一个过滤了嵌套文档的集合。

假设我有一个包含许多嵌套post文档的category文档。

代码语言:javascript
复制
{
  name: 'myCategory',
  order: 2,
  posts: [
    {
      hidden: true
    },
    {
      hidden: false
    },
    {
      hidden: true
    },
    ...
  ]
}

如何发布此文档,其中仅包含hidden设置为falseposts

我已经尝试过了,但没有成功:Categories.find({'posts.hidden': false}),不知道从哪里开始。有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-06-26 09:01:30

没有好的方法可以做到这一点。您可以使用以下方法对集合进行抽象:

代码语言:javascript
复制
Meteor.methods({
  getCategories: function () {
    Categories.find().map(function (categorie) {
      categorie.posts = _.compact(_.map(categorie.posts, function (post) {
        return post.hidden ? false : post
      }))
      return categorie
    })
  }
})

这样你就可以得到一个静态数组。要想做出反应,你必须付出更多的努力。你可以使用Tracker.Dependency

最简单的方法可能是重构文档。将有两个数组:postspostsHidden。这样,您就可以简单地使用fields选项。在你的出版物中,你可以这样做:

代码语言:javascript
复制
Categories.find({}, {fields: postsHidden: false})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31062889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档