Meteor.js嵌入式集合

时间:2015-06-16 22:38:00

标签: meteor

数据模型:

{
    name: "Some name",
    items: ["Item1", "Item2", "Item3"]
}

我想将所有name字段发布到集合中(我可以这样做),让我们称之为names,一旦用户从names中选择了某些内容,就发布项目数组到另一个名为items的Meteor集合。

原因是我需要names始终可用,items只应与用户的选择相关。

如何实现这一目标?也许有另一种方法可以做到这一点,例如有选择地只更新集合中项目的一部分?

1 个答案:

答案 0 :(得分:1)

这是Meteor和Mongo中非常常见的模型。你可以通过两种主要方式解决它。

  1. 如果每个名称的项目数量很小,只需将它们放入名称文档中的数组中即可。只要您加载名称,它们就会自动为您提供。
  2. 如果每个名称的项目数量可能非常大,则创建两个集合NamesItems。在Items集合中包含一个键nameId并在其中填入名称。然后,当您加载名称文档时,您只需使用Items.find({ nameId: _idOfMyNameDocument })
  3. 找到相关项目

    您可能还会发现reywood:publish-composite包有用。

相关问题