Spring MongoDB查询或运算符和文本搜索

时间:2018-05-30 15:43:41

标签: spring mongodb spring-data spring-data-mongodb

如何使用Spring Criteria构建此MongoDB查询?

{
  $or: [
    { "$text" : { "$search" : "570-11024" } },
    {"productDetails.code": "572-R110"}
  ]
}

它将全文索引搜索与正常的Where标准与orOperator结合使用。

查询的 orOperator(条件...条件)方法仅采用Criteria且没有TextCriteria,也没有CriteriaDefinition接口。

1 个答案:

答案 0 :(得分:1)

是的,你是对的,在Spring数据mongo你可以这样做,

final TextCriteria textCriteria = TextCriteria.forDefaultLanguage().matchingAny("570-11024");
final DBObject tc = textCriteria.getCriteriaObject();
final Criteria criteria = Criteria.where("productDetails.code").is("572-R110");
final DBObject co = criteria.getCriteriaObject();

BasicDBList or = new BasicDBList();
or.add(tc);
or.add(co);

DBObject qq = new BasicDBObject("$or", or);
// Use MongoTemplate to execute command
mongoTemplate.executeCommand(qq);