我的脚本有一点问题。我无法在“$where”的函数中传递参数(示例中为 MYPARAMETER)。
你有什么想法可以帮助我吗?谢谢。
var MYPARAMETER = "dqsd qsdqs &é&é";
MyCol.findOne({
$where: function(MYPARAMETER)
{
var tab1="ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ!#$€%&'`(),;:/@.*[]\|";
var tab2= "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn ";
rep2=tab1.split('');
rep=tab2.split('');
parray=new Array();
var i=-1;
while(rep2[++i])
{
parray[rep2[i]]=rep[i]
}
var chaine = this.name.replace(/\s{1,}/g,"-");
chaine = chaine.replace(/./g, function($0){return (parray[$0])?parray[$0]:$0 });
chaine = chaine.replace(/\s/g,"");
return (chaine == MYPARAMETER);
}
},
最佳答案
$where
在服务器上执行,因此无法访问在另一台服务器上本地声明的变量。 JavaScript 应该用作 last resort generally in MongoDB ,这似乎是相反的,并且执行了大量非常耗时的工作。
您需要将函数构建为字符串并直接包含该值。
关于javascript - 使用 MongoDB 在 $where 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19712971/