2016-06-29 25 views
1

Ich benutze Wasserlinie in sails.js und versuche, alle Datensätze von "Benutzer" -Modell zu finden, die ihre verwandte "Car" -Modell-ID in einer angegebenen Liste ist, wie folgt:Wo Bedingung auf bevölkerten Modell nicht in Wasserlinie funktioniert

Das Problem ist, dass die Abfrage unabhängig von Listenwert ausgeführt wird und alle Datensätze zurückgegeben werden. Wie sollte dieses Kriterium angewendet werden?

Modelle sind wie folgt definiert:

//User: 
module.exports = { 
    connection: 'mysqlConnection', 
    attributes: { 
    id: { 
     type: 'integer', 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    car: { 
     model: 'Car' 
    } 
    } 
} 
//Car: 
module.exports = { 
    connection: 'mysqlConnection', 
    attributes: { 
    id: { 
     type: 'integer', 
     primaryKey: true, 
     autoIncrement: true 
    }, 
    title: { 
     type: 'string' 
    } 
    } 
} 

Antwort

0

Ich habe nie verstanden, warum der Wasserlinie wie folgt artig ...

Aber hier ist eine einfache Möglichkeit, es zu machen:

var list = [3, 4, 5]; 
User 
    .find({ car: list }) 
    .populate('car') 
    .exec(function(err, foundUsers){ 
    console.log(foundUsers); 
    }); 

EDIT: ab dem 31.01.2017 scheint das zusätzliche Populate nicht mehr zwingend erforderlich. Habe die Version, wo es sich geändert hat, nicht überprüft

+0

Das ist irgendwie komisch, und nicht als das, was in den Dokumenten erklärt wird! Aber es funktioniert, danke. – Behnam