反应性 Mongo 扩展:使用“查询 DSL”在 $in 查询中传递值列表

Reactive Mongo Extensions: Pass List Of Values In $in Query using `Query DSL`

我正在尝试使用 Query DSL 和 Reactive Mongo 扩展在 $in 查询中传递倍数值。但结果是空列表。以下是我的代码:

def findUsersByRolesIds(rolesIds: List[BSONObjectID], page: Int, pageSize: Int): Future[List[User]] = {
  logger.info("findUsersByRolesIds Reactive Repository Method");

  userGenericRepo.find($doc("userRoles._id" $in (rolesIds)), $doc("createdOn" -> -1 ), page, pageSize);
}

当我尝试执行上面的代码时,结果是空的。

但是当我通过时,下面的代码结果是 return。

def findUsersByRolesIds(rolesIds: List[BSONObjectID], page: Int, pageSize: Int): Future[List[User]] = {
  logger.info("findUsersByRolesIds Reactive Repository Method");

  userGenericRepo.find($doc("userRoles._id" $in (BSONObjectID.apply("5548b098b964e7039852ff58"))), $doc("createdOn" -> -1 ), page, pageSize);
}

主要问题是,我有多个值,所以这就是我创建列表但此处列表不起作用的原因。使用 reactive mongo extenstionsQuery DSL 如何实现此查询。

$in 需要可变参数,即 val dsl: BSONDocument = "age" $in (1, 2, 3)。所以你不能直接将一个集合传递给它。尝试使用这个 "age" $in (rolesIds: _*).