$ elemMatch和$ eq等效于spring数据mongodb

时间:2017-10-16 06:07:54

标签: mongodb spring-data-mongodb

我的mongodb有以下查询。如何将它转换为spring数据mongodb中的等效代码:

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

其中一个帐户集合如下所示:

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

1 个答案:

答案 0 :(得分:0)

您也可以使用$elemMatch代替$eq$in。此查询完全符合您的查询:

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

对于此查询的spring-data-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)