在我们的使用mongotemplate的spring引导应用程序中,我需要编写一个查询以使用LIKE
运算符获取结果。但是在mongotemplate中,就像在SQL中一样,我没有可以使用的直接查询。
我已经尝试使用Aggregate
和regex
方法之类的一些选项,但是没有用。
在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检索两个结果。
答案 0 :(得分:0)
更新后的复制链接未引用必需的mongoTemplate实例。
通过我同样使用aggregationOperation的方式,并得到了结果。
示例代码: AggregationOperationaggregate = Aggregation.project()。and(“ FirstName”)。as(“ name”);
AggregationOperation operation = Aggregation.match(Criteria.where("name").regex(pattern, "i"));
Aggregation aggregation = Aggregation.newAggregation(aggregate, operation);
现在能够检索结果。