2014-01-21 27 views
5

我想查询集合中的对象,例如给定的值必须属于字符串数组中的值在集合中查找元素,其中元素具有一个字段,该字段是列表,并且给定值必须属于该列表

字符串数组是每个Obejct领域包含字符串

的列表中的名称我的收藏MongoDB中的strucutre是

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); 

到目前为止,还没有工作。

任何想法?

回答

9

认为你刚刚翻转的顺序。请尝试:

Criteria.where("stringArray").in(theValueIamlookingFor)

,取代上述

+0

非常感谢它的工作原理!但是我对语法有些困惑,我认为语法是:where(元素)。在(数组)中,它是(数组)中的哪个(数组) – stackSaru

+0

事实上,该语法有点违反直觉,但它首先是关键,然后是可能值的列表。人们希望在篮子里找到苹果**,而不是相反 –

相关问题