model
@Data
@AllArgsConstructor
@NoArgsConstructor
public class TestModel {
private String _id;
private String score;
private List<HahaModel> list;
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class HahaModel {
private String age;
private String name;
}
Repository
@Repository
public interface TestDao extends MongoRepository<TestModel, String> {
@Query(value = "{'list.name':'?0','list.age':'?1'}")
List<TestModel> find(String name, String age);
}
注意啊
"{'list.name':'?0','list.age':'?1'}"
?0这个是占位符,对应方法里的name,?1就是age呗
你其实还可以指定@query里的field,这个是指定查出来哪个值返回给你,具体的别人都写过,搜一下都有
我要说的是?0两边一定要加'',不然条件是两个的时候是会报错的
要是就一个"{'list.name':?0}"你这么写也没毛病
这不就查出来了,你要是指定@Query了方法名好像注意点别用by这by那得就行最好别冲突springdata那种命名方式。
下面再来几个链接可以看看:
https://www.jianshu.com/p/24a44c4c7651
https://blog.csdn.net/zhou_xuexi/article/details/77963814