我对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
。任何指导将不胜感激。
答案 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 $
运算符的优势,该运算符使您可以将对象定位到数组内,然后更新该特定对象。