1

我正在尝试使用 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]
        }
    })
});

所以现在我想弄清楚如何在这样的模式上进行插入、更新、删除操作?我是否为整体的单个模式做?一个例子会很有帮助。

任何帮助将不胜感激。

提前致谢,

普拉尼

4

1 回答 1

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的值

于 2014-03-30T11:27:51.493 回答