2017-10-16 2 views
0

Ich habe eine Abfrage für meine mongodb. Wie es mit dem entsprechenden Code im Frühjahr Daten mongodb übersetzen:

db.getCollection('account').find({ 
    colorList: {$elemMatch: { 
      $eq:"577b" 
     } 
    } 
}) 

einer der Konto Sammlung wird wie unten dargestellt:

{ 
    "_id" : ObjectId("133b6ca05e7c058819ab6e6c"), 
    "fleetList" : [ 
     "577b", 
     "123b" 
    ] 
} 
+0

Welcher Typ ist colorList? String, StringList, Objektliste? – barbakini

+0

Die Sammlung "account" wird wie oben angezeigt. colorList ist der Typ von String []. – Zhichao

+0

fleetList oder colorList? – barbakini

Antwort

0

Statt $elemMatch und $eq zu verwenden, können Sie $in verwenden für Ihre Abfrage auch. Diese Abfrage macht genau, dass Ihre Abfrage tut:

db.account.find({ "colorList": { $in: ["577b"] } }); 

Und für das Frühjahr-data-mongodb Methode für diese Abfrage ist:

List<Account> findByColorListIn(List<String> colorIds); //In your case colorIds list has one element only. 

Wenn Sie mit Ihrer Anfrage halten wollen:

@Query("{'colorList': {\$elemMatch: {\$eq: ?0}}}") 
List<Account> findByColorList(String colorId) 
Verwandte Themen