$ and condition不适用于springboot mongodb中的三个或三个以上字段

时间:2019-03-08 09:38:28

标签: java mongodb spring-boot

@Document(collection = "formtype")
public class FormType {
    @Id
    @Field(value = "id")
    private Long formTypeId;  

    @Field(value = "formtypename")
    private String formTypeName;

@Field(value = "isdeleted")
private Boolean isDeleted = false;

 //with constructor and getter setter
}

我已编写此查询来查找表单类型的记录,其中formTypeName不属于formTypeId,而isDeleted不等于true。

编写此查询,即使存在该记录,我也将值获取为null。      请帮帮我!

 @Query("{ '$and': [ {'formTypeId':{$ne :?0}} , {formTypeName:'?0'} , {'isDeleted':{$ne : true}} ] }") FormType getformTypeToUpdate(Long formTypeId,String formTypeName);

1 个答案:

答案 0 :(得分:0)

您将?0括在了简单的引号中,这可能会被编译器误解。另外,似乎您只在两个条件Long formTypeIdformTypeId中使用了formTypeName参数。

您可以尝试:

@Query("{ '$and': [ { 'formTypeId': { $ne : ?0 } }, { 'formTypeName': ?1 }, { 'isDeleted': { $ne : true } } ] }") 
FormType getformTypeToUpdate(Long formTypeId, String formTypeName);