通过流星/蒙哥显示子文档的内容

时间:2018-07-19 20:06:21

标签: javascript html mongodb meteor

我对Meteor还是很陌生,并且一直在处理文档。我已经能够向最终用户显示集合中的顶级文档,但是想知道是否可以向用户显示子文档及其字段。

我在Mongo中的文档如下:

"_id" : "qeuhr3X7ErcvpnfXE",
"name" : "Profile",
"Channels" : {
  "channel test" : {
    "name" : "channel test",
    "HighLimit" : 6.5,
    "LowLimit" : 4.5,
    "StopCount" : 10
  }
},
"steps" : {
},
"createdBy" : "psG7RnnD35J6uwceY"

我的最终目标是让用户创建Channels,并在创建用户时将其显示在网页上的列表中并且可以编辑。我所缺少的难题实际上是显示这些通道并允许选择它们。

我目前已经有了一个表单,该表单允许用户添加任意​​数量的channels。任何指导将不胜感激。

2 个答案:

答案 0 :(得分:1)

在这种情况下,您可以通过

引用下级文档。
Channels['channel test']

然后按

Channels['channel test'].name

答案 1 :(得分:0)

基于上述事实,您倾向于使用非规范化的存储方法,我的建议是将每个channel对象存储在名为Channels的数组中。

然后,您需要为其分配一个_id,以便将来引用。

您可以使用流星random包为子文档创建新的ID:

import { random } from meteor/random;
const channelId = random.id()

然后您可以使用类似的查询,使用其_id更新每个频道:

Channels.update(
  { _id: "qeuhr3X7ErcvpnfXE", "Channels._id", "bqudr562ercppmh7A" },
  { $set: { "Channels.$.name": "New Channel Name" }}
)

此查询利用Mongo $运算符的优势,该运算符使您可以将对象定位到数组内,然后更新该特定对象。