在springboot应用程序中使用mongotemplate实现Like运算符

时间:2019-10-10 09:47:57

标签: spring-boot mongotemplate

在我们的使用mongotemplate的spring引导应用程序中,我需要编写一个查询以使用LIKE运算符获取结果。但是在mongotemplate中,就像在SQL中一样,我没有可以使用的直接查询。

我已经尝试使用Aggregateregex方法之类的一些选项,但是没有用。

在MongoDB中也尝试过相同的操作。

db.getCollection('Months').find({"name":/Jan/}).

因此,在months table中,我必须检索在“名称”列中包含“简”字母的结果。但是在运行此查询时,假设在这种情况下我有一个名为“ DecJan”的条目,则无法检索它。

Query constantQuery = new Query();``
constantQuery.addCriteria(Criteria.where("name").regex("DecJan", "i"));

List<Months> pp = this.mongoTemplate.find(constantQuery, Months.class);

因此,如果我在“ January”,“ DecJan”之类的表中有两个条目,那么应该是 在查询中,如果我传递“ Jan”,则需要使用mongotemplate检索两个结果。

1 个答案:

答案 0 :(得分:0)

更新后的复制链接未引用必需的mongoTemplate实例。

通过我同样使用aggregationOperation的方式,并得到了结果。

  1. 创建AggregationOperation
  2. 构建具有所需匹配项的聚集对象。
  3. 使用Mongotemplate.aggregate(AggregationOperation,Aggreation)查询

示例代码: AggregationOperationaggregate = Aggregation.project()。and(“ FirstName”)。as(“ name”);

        AggregationOperation operation = Aggregation.match(Criteria.where("name").regex(pattern, "i"));

        Aggregation aggregation = Aggregation.newAggregation(aggregate, operation);

现在能够检索结果。