gpt4 book ai didi

java - 在 Spring mongoTemplate 中编写类似的等效查询..或者我应该使用什么?

转载 作者:行者123 更新时间:2023-12-01 18:48:00 28 4
gpt4 key购买 nike

我正在使用 spring 和 MongoTemplate 并尝试编写一个等效的查询 SQL LIKE 语句。我还没有看到令人满意的答案,代码如下:

@Document
public class Lake {
@Id
private String oid;
@Indexed (sparse = true)
private String name;
private String state;
}


public List<Lake> listLakesLike(String likename) {
try {
Query filter = new Query(Criteria.where("name").regex("lakename","i"));
List<Lake> lakes = mongoTemplate.find(filter, Lake.class);
return lakes
}

我认为这是一个不起作用的例子,没有湖泊返回。

如何编写 mongoTemplate.find 来根据传入的值 likename 匹配 LIKE 湖名称?

提前谢谢你..这让我发疯..或者你能给我举个例子吗。

最佳答案

Spring MongoDB 语法

Query filter = new Query(Criteria.where("name").regex("lakename","i"));

相当于MongoDB shell命令

db.lake.find({name:/lakename/i})

注意 Spring 不需要前导斜杠和尾随斜杠。首先在 shell 中尝试该命令,检查所有数据是否正确,如果它不起作用,我很确定您的问题出在其他地方(例如:您的 Spring MongoDB 指向错误的主机/database.collection 名称)

另请注意 Spring MongoDB 将类名 Lake 隐式转换为集合名称 Lake(小写)。如果您需要指定显式集合名称,可以使用 @Document(collection = "Lake") 来执行此操作

关于java - 在 Spring mongoTemplate 中编写类似的等效查询..或者我应该使用什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887764/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com