在MongoDB中传递参数$
我的脚本有点问题 我不能在'$ 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); } },
A $where
服务器$where
执行,因此将无法访问在另一台服务器上本地声明的variables。 在MongoDB中 ,JavaScript应该作为最后的手段使用 ,而这似乎是相反的,并且执行很多非常耗时的工作。
您需要将该函数构build为string,并直接包含该值。
这一个是适合我的,只要尝试将查询作为string存储在一个variables中,然后将查询string中的variables串起来,
var local_var = 42
var query =“{$ where:function(){return this.a ==”+ local_var +“}}”
db.test.find(查询)
观看参考实例