当前位置: 首页 > 知识库问答 >
问题:

如何查询MongoRepository Spring Data MongoDB中的空值文档

壤驷棋
2023-03-14

我无法在Spring Data MongoDB中将值初始化为false,因此在我的查询中,我想搜索字段设置为false或null的文档。

以下片段似乎不起作用:

@RestResource(rel = "findInactiveOrders", path = "findInactiveOrders")
Order findByIdAndIsActiveFalseOrIsActiveNull(@Param("id"))

共有1个答案

勾起运
2023-03-14

我不确定您是否可以使用Spring数据方法名称实现此类查询。由于您的查询将被评估为_id=="id"AND isActive==false OR isActive==null而不是_id=="id"AND(isActive==false OR isActive==null)

如果碰巧isActive只能是truefalsenull,您可以尝试

@RestResource(rel = "findInactiveOrders", path = "findInactiveOrders")
Order findByIdAndIsActiveNot(@Param("id"), true)

否则,您将需要使用Spring数据mongodb提供的其他查询方法,如MongoTemplate助手类或query注释。

@查询注释

@RestResource(rel = "findInactiveOrders", path = "findInactiveOrders")
@Query("{$and: [{'_id': :#{#id}}, $or: [{ 'isActive':false}, {'isActive': null}]]}")
Order findByIdAndIsActiveNot(@Param("id"))
 类似资料:
  • MySQL 提供了 IS NULL 关键字,用来判断字段的值是否为空值(NULL)。 空值不同于 0,也不同于空字符串。 如果字段的值是空值,则满足查询条件,该记录将被查询出来。如果字段的值不是空值,则不满足查询条件。 使用 IS NULL 的基本语法格式如下: IS [NOT] NULL 其中,“NOT”是可选参数,表示字段值不是空值时满足条件。 例 1 下面使用 IS NULL 关键字来查询

  • 问题内容: 我有一个查询,看起来像这样: 这是一个非常基本的查询。除了提取Item的值之外,我还想将其他值添加到混合中,然后将其返回给我。在原始SQL中,我会这样做: 如何通过sqlalchemy手动添加该值? 问题答案: 您需要使用,看起来有点像这样: 注意,该参数无需任何转换即可插入查询;如果您从应用程序外部接受text参数的值,则可能使您暴露于SQL Injection漏洞。如果这是您需要的

  • 问题内容: 如何查询列中的任何值?(即,我如何构建一个动态的where子句,该子句可以过滤值,也可以不过滤值。) 我希望能够查询一个特定的值或没有。例如,我可能希望该值为1,但我可能希望其为任何数字。 有没有一种方法可以使用通配符(例如“ *”)来匹配任何值,以便可以将其动态插入到我不需要过滤器的地方? 例如: 我不想使用2条单独的SQL语句的原因是因为我将其用作SQL数据源,它只能有1条sele

  • 问题内容: 基于Access中的以下SQL … …我的结果返回了以下数据表: 除了 我想在为空的单元格中看到零 之外, 这个结果正是我想要的。 有什么选择呢?如果可能的话,我想避免使用子查询。我也希望查询在Access的“设计视图”中保持可编辑状态。 问题答案: 我认为您必须使用Nz函数,该函数将允许您将NULL转换为另一个值。在这种情况下,我用函数的(可选)部分说:“如果Sum([Shape_L

  • 问题内容: 寻找所有的行,其中某个json列包含一个空对象{}。对于JSON数组,或者在对象中寻找特定键,这是可能的。但是我只想知道对象是否为空。似乎找不到可以执行此操作的运算符。 问题答案: 有没有平等(或等于)运算符的数据类型json作为一个整体,因为平等是很难建立。jsonb在可行的情况下,请考虑使用Postgres 9.4或更高版本。有关dba.SE(上一章)的此相关答案中的更多详细信息: