2017-10-16 264 views
0

我对我的mongodb有以下查询。如何在春季数据的MongoDB它翻译成等价代码:

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

账户集合的一个如下图所示:

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

colorList是什么类型? String,StringList,ObjectList? – barbakini

+0

“帐户”集合如上所示。 colorList是String []的类型。 – Zhichao

+0

fleetList或colorList? – barbakini

回答

0

而不是使用$elemMatch$eq,你可以使用$in您也查询。该查询使得正是您的查询字词:

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

而对于此查询弹簧数据MongoDB的方法是:

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

如果要坚持你的查询:

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