javascript wierdness返回值

时间:2013-09-13 04:11:51

标签: javascript node.js node-mongodb-native

您好我是javascript新手,有一个问题让我发疯: 静态声明为此对象的对象之间的区别是什么:

{$or:[{tc_clpar_id:4,tc_par_id:{$in:[79,80]}},{tc_clpar_id:5,tc_par_id:{$in:[105,106]}}]}

和运行时的对象costruct,使用此函数:

function buildQuery(self,setting,query){
var query = {$or:[]};
cl = 'tc_cl'+self.family+'_id';
att ='tc_'+self.family+'_id';
keys = Object.keys(setting);
for( var k=0;k<keys.length;k++){
    ch = keys[k];
    var q = {};
    q[cl] = ch;
    q[att] = {$in:setting[ch]};
    query.$or.push(q);
}
return query;

这个对象用作查询node-mongodb-native驱动程序,第一个工作,函数返回正确的对象,我用assert.deepEqual检查了两个对象,没有错误,但使用了生成的对象我得到一个空的结果集,我对这个问题没有任何线索,我认为可能是范围有些奇怪,因为函数是另一个对象的方法,或者可能是垃圾收集器。

0 个答案:

没有答案