Spring Data 正则表达式未按预期工作

SpringData regex not working as expected

工作本机查询

{
  $match: {
    $and : [
      {userType:"200"},
      {
        $or: [
          {login     : /infosys/},
          {email     : /infosys/},
          {firstName : /infosys/},
          {lastName  : /infosys/}
        ]
      }
    ]
  }
}

SpringData API 未按预期工作:

match(
    Criteria.where("userType").is(userType).orOperator(
        Criteria.where("login").regex(searchTxt).orOperator(
            Criteria.where("email").regex(searchTxt).orOperator(
                Criteria.where("firstName").regex(searchTxt).orOperator(Criteria.where("lastName").regex(searchTxt))
            )
        )
    )
);

您是 $or each 条件与 $or 运算符。 orOperator 获取 crtieria 列表。

以下是您的本机查询的等效项。

match
(
  Criteria.where("userType").is(userType)
  .orOperator(
      Criteria.where("login").regex(searchTxt), 
      Criteria.where("email").regex(searchTxt), 
      Criteria.where("firstName").regex(searchTxt), 
      Criteria.where("lastName").regex(searchTxt)
    )
)