Mongodb 如何将数组传递给MongoRepository@Query?

Mongodb 如何将数组传递给MongoRepository@Query?,mongodb,spring-data,Mongodb,Spring Data,使用Spring数据MongoDB。我已经在我的MongoRepository上定义了这个查询: @Query("{'type':?0, 'tags.type':?1, 'tags.softSkill.name': {$all: ?2}}") List<Foo> findByTypeAndTags_TypeAndTags_SoftSkills( FooType type, TagType tagType, String[] softSkills); 在mongo s

使用Spring数据MongoDB。我已经在我的MongoRepository上定义了这个查询:

@Query("{'type':?0, 'tags.type':?1, 'tags.softSkill.name': {$all: ?2}}")
List<Foo> findByTypeAndTags_TypeAndTags_SoftSkills(
        FooType type, TagType tagType, String[] softSkills);
在mongo shell上,类似于:
$all:['foo1','foo2']

Foo抽象实体类似于:

@Data
@Document(collection="foes")
public abstract class Foo {
    /*...*/ 
    protected List<Tag> tags = new ArrayList<>();
}
TagSoftSkillpojo:

@Data
@EqualsAndHashCode(callSuper=true)
public class TagSoftSkill extends Tag{

    private SoftSkill softSkill;  //another pojo that has a "name" field


    public TagSoftSkill() {
        super(TagType.SOFT_SKILL);
    }


}

我已经调试并打印了
[foo]
。我将该值修改为类似于
['foo']
,但没有任何更改

我没有提到我正在使用。切换到真正的mongo,一切正常。所以这是fongo的问题。

我没有提到我正在使用。切换到真正的mongo,一切正常。所以这是fongo的问题。

你能给我们展示一下输入arg
softSkills
失败的示例调用方法吗?请将你的
Foo
bean也添加到帖子中?@Veeram好的,doneI不能重新创建错误。列表和数组在1.10.4 spring mongo版本中的设置对我都适用。你能为异常添加stacktrace吗?@Veeram这样做
@Query
{$all:?2}
并传递
字符串[]
应该是合法的吗?好的,我将继续调试。你能给我们展示一下输入arg
softSkills
失败的示例调用方法吗?请将你的
Foo
bean也添加到帖子中?@Veeram好的,doneI不能重新创建错误。列表和数组在1.10.4 spring mongo版本中的设置对我都适用。你能为异常添加stacktrace吗?@Veeram这样做
@Query
{$all:?2}
并传递
字符串[]
应该是合法的吗?好的,我将继续调试。
@Data
public abstract class Tag {

    protected final TagType type;
    protected TagLevel level;

}
@Data
@EqualsAndHashCode(callSuper=true)
public class TagSoftSkill extends Tag{

    private SoftSkill softSkill;  //another pojo that has a "name" field


    public TagSoftSkill() {
        super(TagType.SOFT_SKILL);
    }


}