什么样的 Java 类型传递给 Criteria.all()?

What kind of Java type to pass into Criteria.all()?

我正在尝试查找包含与值列表匹配的标签数组的文档, 通过 Spring Data MongoDB API for all().

使用 MongoDB 的 $all 函数

标签是一个嵌入文档,有两个字段:类型和值。

我不确定要将哪种 Java 类型传递给该方法,因为它接受一个对象数组,试图将一个 Criteria 对象数组传递给函数,但输出如下:


Query: { "tags" : { "$all" : [ { "$java" : org.springframework.data.mongodb.core.query.Criteria@5542c4fe }, { "$java" : org.springframework.data.mongodb.core.query.Criteria@5542c4fe } ] } }, Fields: { }, Sort: { }

我应该如何进行?

我想实现以下目标:

db.template.find( { tags: { $all: [ {type:"tagOne", value: "valueOne"}, {type:"tagTwo", value: "valueTwo"} ] } } )

为清楚起见进行了编辑:

我使用的代码类似于:

Query query = new Query(baseCriteria.and("tags").all( criteriaList.toArray()))

条件列表由以下内容组成:

            Criteria criteria = new Criteria();
            criteria.and("type").is(tag.getType()).and("value").is(tag.getValue());
            criteriaList.add(criteria);

好的,我刚刚发现,所需的 Java 类型是 org.bson.Document,您可以使用:

criteria.getCriteriaObject()