在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(查询)

观看参考实例