我的mongo数据库中有一些文档的_id
定义为string
。_id
s的典型值为
abc#1234
abc#2345
aby#5678
。abx#123
我想在abc#
周围做一个前缀查询,返回abc#1234
abc#2345
(考虑到_id在Mongo中是排序的,我认为前缀查询将是有效的-比2ndry索引更有效-如果我错了请纠正我)
我尝试了下面的方法,它返回了一个大小为0的列表。
@Repository
public interface DBEntityRespository extends MongoRepository<DBEntity, String> {
public List<DBEntity> findByIdStartingWith(String id);
}
实体被定义为…
@Document(collection = "someDBEntity")
@Data
@Accessors(chain = true)
@JsonIgnoreProperties(ignoreUnknown = true)
public class DBEntity {
@Id
@JsonProperty("_id")
private String id;
...
...
...
}
我调用存储库如下
@GetMapping("/v1/x")
public String hi(){
List<DBEntity> list = repo.findByIdStartingWith("abc");// << tried with ^abc , /abc/, abc.* but no luck
System.out.println(list.size() ); // << returns list of size 0
return "success";
}
有没有想过如何解决这个问题?并返回匹配前缀abc
的完整文档??
1条答案
按热度按时间olmpazwi1#
你可以试试这个查询