2016-05-22 9 views
1

Ich habe ein Modell event, die ReferenzMany user.Wie Abfragen von Objekten mit Eigenschaft enthält einen Wert in Loopback

"relations": { 
    "attendees": { 
    "type": "referencesMany", 
    "model": "user", 
    "foreignKey": "attendeeIds", 
    "options": { 
     "validate": true, 
     "forceId": false, 
     "persistent": true 
    } 
} 

Wie kann ich Ereignis abfragen, die attendees Eigenschaft einen bestimmten Wert enthalten? attendees ist ein Array, das userId enthält.

Zum Beispiel:

Event.find({ 
    where: { 
     attendees: { 
     contains: givenUserId 
     } 
    } 
    } 
) 

Antwort

0

Diese Funktion genannt wird ‚Filter auf Ebene 2 Eigenschaften‘ als here verwiesen und wird für Speicher und MongoDB-Anschlüsse realisiert. Es hat immer noch einige Probleme. Für SQL-Konnektoren wird dies noch nicht unterstützt und - wie auch in diesem offenen Diskussionslink erwähnt - benötigt es etwas Zeit, die jetzt nicht mehr gegeben ist.

Mögliche Arbeit um here mit regexp, die den zugrunde liegenden JSON-String und Ausführen von SQL direkt über datasource.connector.execute()

Einfache implementaion gelten würde könnte:

AnyModel.getApp((err, app) => { 
    if (err) { 
    console.log(err); 
    next(err); 
    } 

    // Using MySQL 
    const MySQL = app.dataSources.MySQL; 

    MySQL.connector.execute(`select * from Table where column like '%${string}%'`, 
    [], {}, (err, data) => { 
     if (err) { 
     console.log(err); 
     next(err); 
     } 

     console.log(data); 
     next(); 
    }); 
});