2016-07-08 16 views
1

Ich versuche, Daten mit "und" und "oder" Bedingungen zu filtern. Ich möchte diese MySQL-Abfrage erhalten:Strongloop: Filter Daten mit [und] und [oder] Bedingungen zusammen

SELECT * FROM `data` WHERE ((`property1`=11) OR (`property1`=13)) AND (`property2`=6) 

Der Rest api, die ich ist wie folgt geschrieben:

http://localhost:4000/api/Data/?filter[where][or][0][property1]=11&filter[where][or][1][property1]=13&filter[where][and][0][property2]=6 

Die Loopback-json Übersetzung scheint korrekt zu sein:

{            
    "or": [        
      {        
        "property1": 11  
      },       
      {        
        "property1": 13  
      }        
    ],         
    "and": [        
      {        
        "property2": 6  
      }        
    ]          
} 

Aber die übersetzte Abfrage auf mySql ist:

SELECT * FROM `data` WHERE (`property1`=11) OR (`property1`=13) AND (`property2`=6) 

Was ist los?

+0

Sie müssen 'einzukapseln or' in' und'. – Jain

Antwort

0

Der richtige Filter ist wie:

{  
    "and": [ 
     {        
      "property2": 6  
     } , 
     { 
     "or": [        
      {        
        "property1": 11  
      },       
      {        
        "property1": 13  
      }        
    ] }  
    ]        
} 
+0

Danke Ebrahim. Die JSON-Struktur ist klar, aber ich verstehe nicht, wie man dieses JSON von einem API-Aufruf erhält. –

+0

@FrancescoDeRosa Vielleicht 'filter [wo] [und] [0] [oder] [0] [property1] = 11 & filter [wo] [und] [0] [oder] [1] [property1] = 13 & filter [where] [ und] [1] [property2] = 6' –