Spring 查找集合中的元素,其中元素具有列表字段,且给定值必须属于该列表

Spring 查找集合中的元素,其中元素具有列表字段,且给定值必须属于该列表,spring,mongodb,criteria,mongotemplate,Spring,Mongodb,Criteria,Mongotemplate,我想查询集合中的对象,例如给定值必须属于stringArray中的值 stringArray是包含字符串列表的每个Obejct的字段名称 我在mongodb收藏的结构是 Object1 { field1 field2 stringArray[2] 0 String0 1 String1 } Object2 { field1 field2 stringArray[3] 0 String0

我想查询集合中的对象,例如给定值必须属于stringArray中的值

stringArray是包含字符串列表的每个Obejct的字段名称

我在mongodb收藏的结构是

Object1
{
  field1
  field2
  stringArray[2] 
        0     String0
        1     String1
}

Object2
{
  field1
  field2
  stringArray[3] 
        0     String0
        1     String1
        2     String2
}
}

我的问题是:

     Query query = new Query();
     query.addCriteria(
            Criteria.where(theValueIamlookingFor).in("stringArray")                
     );               
    return mongoTemplate.find(query, myObject.class);
到目前为止,它还没有起作用


有什么想法吗?

我想你刚刚把订单翻过来了。请尝试:

Criteria.where(“stringArray”).in(我正在寻找的值)


而不是上述内容

非常感谢!它起作用了!但是我对语法有点困惑,我认为语法是:where(元素)。在(数组)中,而在相对性中,它是(数组)在(元素)中的位置。确实,语法有点违反直觉,但它首先是键,然后是可能值的列表。人们会期望在篮子里找到苹果,反之亦然