Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将集合名称作为参数传递给Meteor中的方法?_Meteor - Fatal编程技术网

如何将集合名称作为参数传递给Meteor中的方法?

如何将集合名称作为参数传递给Meteor中的方法?,meteor,Meteor,感谢我糟糕的英语水平,我不得不用下面的代码来表达我的想法 友好编辑: 我正在尝试编写一个通用的confirmAndRemoveCollection方法,该方法接受collectionName和itemId,我想对该集合执行操作。由于collectionName是一个字符串,因此我无法对其执行DB操作。有人可以建议我如何使用集合名称来访问实际的集合对象吗 confirmAndRemoveCollection:(collectionName,itemId)-> check(itemId

感谢我糟糕的英语水平,我不得不用下面的代码来表达我的想法

友好编辑:

我正在尝试编写一个通用的
confirmAndRemoveCollection
方法,该方法接受
collectionName
itemId
,我想对该集合执行操作。由于
collectionName
是一个字符串,因此我无法对其执行DB操作。有人可以建议我如何使用集合名称来访问实际的集合对象吗

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"
        )

变量
collectionName
是一个字符串对象,因此无法对其调用MongoDB方法

完成任务的一种方法是创建一个将字符串名称映射到集合对象的对象

例如:


Posts=新的Mongo.集合(“Posts”);
Comments=新的Mongo.Collection(“Comments”);
集合={
"岗位":岗位,,
“评论”:评论
};

然后您可以在代码中执行类似的操作

if isConfirm
  Collections[collectionName].remove(itemId)

这里只需添加一个替代选项(尽管这个问题已经很老了):您可以将集合本身作为参数传递,它将起作用

由于集合是一个对象,当您将其作为参数传递时,它将“通过引用”传递,并且您将能够调用其方法

以@FullStack为例(当然,它也可以工作):

然后做一些类似的事情:

collectionRemove(Posts, 1);
collectionRemove(Comments, 24);
“集合”是键值属性的集合(即对象)还是对象的集合(即数组)?
collectionRemove(Posts, 1);
collectionRemove(Comments, 24);