我的收藏如下
{
"_id" : NumberLong(366),
"_class" : "com.cts.adpart.domain.DBData",
"file" : "xyz",
"sample" : [
"a",
"b",
"c"
]
}
我想根据列表值搜索示例数组 假设现在 1.我的List有值“a”,“c”然后我想要返回上面的文件,但是, 2.如果我的列表包含“a”,“d”它不应该返回上面的文档。
我尝试了以下代码,但即使找到一个匹配项,也会将文档返回给我。
List<String> sampleList = new ArrayList<String>();
sampleList.add("a");
sampleList.add("d");
query.addCriteria(Criteria.where("sample").in(sampleList));
如果更改查询以便仅当list
中的所有值与字段匹配时才返回文档?
答案 0 :(得分:0)
你应该使用$ all运算符
query.addCriteria(Criteria.where("sample").all(sampleList));
答案 1 :(得分:0)
答案 2 :(得分:0)