2013-08-30 63 views
0

我有这样模式匹配中的NodeJS

var obj = {"$match":{"name.first":"aa"}} 

在的NodeJS,我怎么能搜索对象在$模式的对象。任何对此的帮助将会非常有帮助。

谢谢。

+0

您是否在寻找属性名称或值的匹配项,是否必须递归?而且'$'必须在字符串的开头还是在任何地方?属性/值也必须由对象拥有还是可以继承? – cjross

+0

它的递归,我必须检查键和值。 $可以在字符串中的任何位置。该值将由对象拥有 – user87267867

+0

@cjross我有答案var text = JSON.stringify(obj); var n = text.match(/ \ $/g); – user87267867

回答

1

变种文字= JSON.stringify(OBJ); var n = text.match(/ \ $/g);

0

短版?你不能,长版?你必须写自己的函数来做到这一点\

一个非常简单的实现:

var searchObj = function(obj, key, value) { 
    if(obj[key] === value) return obj; 
    for(var k in obj) { 
     var v = obj[k]; 
     if(obj.hasOwnProperty(k) && typeof v === 'object'){ 
      if(v[key] === value) return v; 
     } 
    } 
} 
+0

我不得不在任何地方搜索任何对象的$ pattern,而不是确切的值 – user87267867

+0

我意识到这一点,但你必须自己实现它,我给了你一个开始,你应该从那里开始工作。 – OneOfOne