具有$ exists和$ elemMatch的MongoDB查询不起作用

Bartosz027:

例如,我有Java对象:

public class Foo {
   private Example example;
}
public class Example {
   private String str1;
   private String str2;
}

字段示例可以为null。

我需要获取str1包含例如“ text”的所有Foo对象根据文档,我尝试过:

@Query(value = "{ 'example' : { $exists : true, $elemMatch : { str1 : { $regex: '.*?0.*'} } } }")

但它返回空页面。

prasad_:

在存储库中定义查询:

@Repository
public interface FooRepo extends MongoRepository<Foo, String> {

    @Query("{ 'example' : { $exists : true }, 'example.str1' : { $regex: ?0 } }")
    List<Foo> findByExamplePropertyRegex(String regexStr);
}

样本中foo收集的四个文档

{ "example" : { "str1" : "apple", "str2" : "rose" } },
{ "example" : { "str1" : "pineapple", "str2" : "jasmine" } },
{ "other": "stuff" },
{ "example" : null }

使用CommandLineRunner以下命令从Spring Boot应用程序运行查询

@Autowired
private FooRepo repo;

// ...
public void run(String... strings) throws Exception {
    String regexStr = "apple"; // -or- "in"
    List<Foo> list = repo.findByExamplePropertyRegex(regexStr);
    list.forEach(System.out::println);

输出将是带有regexStr“苹果”的两个文档,以及带有输入“ in”的一个文档。

另请参见:$ regex运算符

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

具有多个连接和包含的 LINQ 查询不起作用

具有网络凭据的HttpWebResponse和代理不起作用

具有$ or和$ and的CouchDB索引不起作用,但只有$ and起作用

具有自定义字体的标签和具有绑定的文本不起作用

(MySQL 和 .Net Core)选择在 where 子句中具有运行时值的查询不起作用

为什么“ NOT IN”和“ NOT EXISTS”不起作用?

具有查询参数的角延迟加载不起作用

MySQL具有相关查询的Having子句不起作用

具有属性路径的SPARQL查询不起作用

具有NOT EXISTS的SQL查询非常慢

总计具有Match的项目在mongodb中不起作用

应用具有多个列的字符串和整数的函数不起作用

具有初始值和验证程序的FormGroup不起作用

具有名称空间的实体在Edge和IE上不起作用

keyup和keydown在具有剔除绑定的表上不起作用

具有lookbehind和lookahead的Python正则表达式不起作用

具有多个命令和标志的Git别名不起作用

当容器具有最小和最大高度时,CSS溢出自动不起作用

具有ECDHE密钥和证书的服务器不起作用

显示和隐藏具有相同类名的多个div不起作用

具有可变列和最后一行的范围不起作用

具有选项和链的fp-ts管道不起作用

具有Material UI和Hooks的下拉菜单不起作用

用于获取不同值和删除具有特定符号的条目的SQL不起作用

具有左联接和倍数键的Linq不起作用

具有bind.so的多个OpenVPN客户端和绑定接口-不起作用

具有表格和绝对定位功能的Flexbox在IE 10、11或Edge中不起作用

2 个具有相同 CSS 和 JS 的按钮不起作用。

为什么具有绝对位置和 z-index 的元素不起作用?