2013-08-30 92 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