2014-07-21 22 views
2

我使用mongoDb與sails.js並需要通過地址字符串進行搜索。例如 - 「Malibu 98000」。 行分貝這個樣子的 {
「狀態」: 「CA」, 「streetNumber」: 「120」, 「streetName」: 「噓」, 「城市」: 「名仕」, 「郵政編碼」 :「98000」 }Sails.js AND條件

但我無法使用「AND」條件執行水線查詢。我已經以幾種方式嘗試過,但其中大多數都返回空或簡單地返回。

var propertySearchParams = { 
     and : [ 
      or:[ 
       {streetNumber: {like: "%98000%"}}, 
       {zipCode: {like: "%98000%"}} 
      ], 
      or:[ 
       {streetName: {like: "%Malibu%"}}, 
       {city: {like: "%Malibu%"}}, 
       {state: {like: "%Malibu"}} 
      ] 
     ] 
    } 

如何指定「Malibu」和「98000」? 謝謝!

回答

0

猜猜你想'andWhere'修飾符。不幸的是,查詢參數在水線中沒有'和'修飾符,但有where()函數,其功能類似andWhere。 所以,基本上,你的查詢應該是這個樣子:

Model.find() 
    .where({ 
      or:[ 
       {streetNumber: {like: "%98000%"}}, 
       {zipCode: {like: "%98000%"}} 
      ] 
      }) 
    .where({ 
       or:[ 
       {streetName: {like: "%Malibu%"}}, 
       {city: {like: "%Malibu%"}}, 
       {state: {like: "%Malibu"}} 
      ] 
      }) 
    .exec(...); 
+0

ArVan,在上面的答案中,只有一個WHERE條件的工作。其次是覆蓋以前的地方。請描述 –