2014-03-29 62 views
1

我正在嘗試使用Meteor Collection2構建一個集合模式。構建嵌套模式需要Meteor Simple-Schema 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收集與上述嵌套模式和執行插入,更新和刪除它查詢的最佳方式。

更新:

所以現在由安德烈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

回答

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

+0

感謝隊友,只是更新了一個可能的模式和收藏碼值。現在我試圖找出如何執行插入,更新,刪除操作。有任何想法嗎? 謝謝 – praneybehl