gpt4 book ai didi

java - 具有多个可选参数的 Spring Data MongoDB AND/OR 查询

转载 作者:IT老高 更新时间:2023-10-28 13:34:37 26 4
gpt4 key购买 nike

我正在尝试使用超过 2 个可选参数执行查询,但没有得到任何结果。对于 2 个参数,我遵循了这个问题的答案 spring-data-mongo - optional query parameters? .

例如,使用以下查询一切正常:

@Query("{$and: [{$or : [ { $where: '?0 == null' } , { a : ?0 } ]}, {$or : [ { $where: '?1 == null' } , { b : ?1 }]}]}")

但如果我再添加一个参数,它就会停止工作:

@Query("{ $and : [{$and: [{$or : [ { $where: '?0 == null' } , { a : ?0 } ]}, {$or : [ { $where: '?1 == null' } , { b : ?1 }]}]},{$or : [ { $where: '?2 == null' } , { c : ?2 }]}]}")

我对语法进行了三次检查,似乎没问题,但我得到的结果是空的(即使我确定我应该至少获得一些文档)。

有什么想法吗?

最佳答案

如果您仔细尝试手动格式化查询以提高可读性,您会注意到您在右括号方面犯了一些错误。

试试这个查询:

{ $and : 
[{
$and:
[
{$or : [ { $where: '?0 == null' } , { a : ?0 }]},
{$or : [ { $where: '?1 == null' } , { b : ?1 }]},
{$or : [ { $where: '?2 == null' } , { c : ?2 }]}
]
}]
}

旁注:我认为一个 $and 就足够了,即删除顶级 $and 运算符。

关于java - 具有多个可选参数的 Spring Data MongoDB AND/OR 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25047673/

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