在 mongoDB 中查找包含给定子字符串的所有名称
Find all names in a mongoDB containing a given substring
您好,我正在使用 scala 和 play2-reactivemongo 版本 0.16.2-play26。
我希望能够对 json 集合执行搜索查询,其中将返回包含给定子字符串的所有名称。我遇到过将 $text 与索引一起使用,但我不确定如何在我使用的 reactivemongo 版本中进行设置。 $text 应该在我的代码中声明吗?
有没有用 Scala 编写的示例?
非常感谢
谢谢@cchantep :)
我设法用这段代码解决了这个问题:
def searchItem(name: String): Future[List[Item]] =
jsonCollectionFuture.flatMap(
_.find(Json.obj("name" -> Json.obj("$regex" -> (".*" + name + ".*"))), None)
.cursor[Item](ReadPreference.Primary)
.collect[List](-1, Cursor.FailOnError[List[Item]]())
)
如果您需要 BSONDocument,请使用以下代码片段:
val query = BSONDocument("columnName" -> "tally")
collection.find(query,Option.empty[BSONDocument]).cursor[BSONDocument]().collect[List](-1,Cursor.FailOnError[List[BSONDocument]]())
您好,我正在使用 scala 和 play2-reactivemongo 版本 0.16.2-play26。 我希望能够对 json 集合执行搜索查询,其中将返回包含给定子字符串的所有名称。我遇到过将 $text 与索引一起使用,但我不确定如何在我使用的 reactivemongo 版本中进行设置。 $text 应该在我的代码中声明吗?
有没有用 Scala 编写的示例?
非常感谢
谢谢@cchantep :)
我设法用这段代码解决了这个问题:
def searchItem(name: String): Future[List[Item]] =
jsonCollectionFuture.flatMap(
_.find(Json.obj("name" -> Json.obj("$regex" -> (".*" + name + ".*"))), None)
.cursor[Item](ReadPreference.Primary)
.collect[List](-1, Cursor.FailOnError[List[Item]]())
)
如果您需要 BSONDocument,请使用以下代码片段:
val query = BSONDocument("columnName" -> "tally")
collection.find(query,Option.empty[BSONDocument]).cursor[BSONDocument]().collect[List](-1,Cursor.FailOnError[List[BSONDocument]]())