我无法在Spring Data MongoDB中将值初始化为false,因此在查询中,我想搜索字段设置为false或null的文档。
以下代码段似乎无效:
@RestResource(rel = "findInactiveOrders", path = "findInactiveOrders")
Order findByIdAndIsActiveFalseOrIsActiveNull(@Param("id"))
答案 0 :(得分:0)
我不确定您可以使用Spring数据方法名称来实现这种查询。由于您的查询将被评估为_id == "id" AND isActive == false OR isActive == null
,而不是_id == "id" AND ( isActive == false OR isActive == null )
。
如果偶然isActive
只能是true
,false
或null
,则可以尝试
@RestResource(rel = "findInactiveOrders", path = "findInactiveOrders")
Order findByIdAndIsActiveNot(@Param("id"), true)
否则,您将需要使用Spring数据mongodb提供的其他查询方法,例如MongoTemplate
助手类或@Query
注释。
@Query注释
@RestResource(rel = "findInactiveOrders", path = "findInactiveOrders")
@Query("{$and: [{'_id': :#{#id}}, $or: [{ 'isActive':false}, {'isActive': null}]]}")
Order findByIdAndIsActiveNot(@Param("id"))