我正在尝试使用Meteor Collection2构建一个集合模式。
我的收藏品的可能架构是:
{
items: {
id: Meteor.ObjectID
title: String,
Desc: String,
createdAt: new Date(),
creator: String,
invitedUsers: [String],
items2: [{
id: String,
pos: Number,
dur: Number,
startTime: Number,
endTime: Number,
duration: Number
items3: [{
id: String,
itemtype: String,
style: String,
items4: [{
id: String,
position: Number,
dome: String
}]
}]
}]
}
}
那么我怎样才能最好地使用上面的嵌套模式构建Collection2集合,以及在其上执行插入,更新和删除查询的最佳方法。
更新
现在正如Andrei Karpushonak所建议的那样,这就是我所拥有的:
Item4 = new SimpleSchema({
position: {
type: Number
},
dome: {
type: String
}
});
Item3 = new SimpleSchema({
itemtype: {
type: String
},
style: {
type: String
},
items4: {
type: [Item4]
}
});
Item2 = new SimpleSchema({
pos: {
type: Number
},
dur: {
type: Number
},
startTime: {
type: Number
},
endTime: {
type: Number
},
duration: {
type: Number
},
items3 : {
type: [Item3]
}
});
Items = new Meteor.Collection2('items', {
schema : new SimpleSchema({
title: {
type: String
},
Desc: {
type: String
},
createdAt: {
type: new Date()
},
creator: {
type: String
},
invitedUsers: {
type: [String]
},
items2: {
type: [Item2]
}
})
});
所以现在我想弄清楚如何在这样的架构上进行插入,更新,删除操作? 我是否为整个个人模式做了什么?一个例子非常有用。
任何帮助都将受到高度赞赏。
先谢谢,
Praney
答案 0 :(得分:5)
您有两种选择:
创建子架构:
item2 = new SimpleSchema({
id: String,
pos: Number
})
item1 = new SimpleSchema({
id: Meteor.ObjectID,
title: String,
items2: [item2]
});
使用点符号
item1 = new SimpleSchema({
id: String,
pos: Number,
"item2.id": String,
"item2.pos": String
});
我认为第一种方法更适合您的模型,因为您将对象数组作为 items2的值