2015-07-04 58 views
1

感謝我那可憐的英語技能,我有Ø通過下面這些代碼表達我的想法..如何將集合名稱作爲參數傳遞給Meteor中的方法?

友好編輯:

我想寫一個廣義confirmAndRemoveCollection方法,這需要在collectionNameitemId,我想對這個集合進行操作。由於collectionName是一個字符串,因此我無法對其執行數據庫操作。有人可以建議我如何使用集合名稱來訪問實際的集合對象。

confirmAndRemoveCollection:(collectionName,itemId)-> 
    check(itemId,String) 
    check(collectionName,String) 
    sweetAlert({ 
      title:"confirm" 
      text:"blabla" 
      type:"info" 
      showCancelButton: true, 
      confirmButtonColor: "#DD6B55", 
      confirmButtonText: "delete" 
      cancelButtonText: "cancel" 
      closeOnConfirm: false, 
     },(isConfirm)-> 
     if isConfirm 
      collectionName.remove(itemId) 
     else 
      return 
     swal(
      'success' 
      "selected item deleted" 
      "success" 
     ) 
+0

是「收集」將是關鍵值屬性的集合(即對象)還是一個對象集合(即一個數組)? – OceansOnPluto

回答

1

變量collectionName是一個字符串對象,所以你將不能夠調用它的MongoDB的方法。

完成任務的一種方法是創建一個將字符串名稱映射到集合對象的對象。

例如:

Posts = new Mongo.Collection('posts'); Comments = new Mongo.Collection('comments'); Collections = { 'Posts': Posts, 'Comments': Comments };

然後,你可以做這樣的事情在你的代碼

if isConfirm 
    Collections[collectionName].remove(itemId) 
相關問題