Scala MongoDB Casbah需要构建动态$or查询

发布于 2024-12-29 04:47:39 字数 540 浏览 1 评论 0原文

使用 Scala、MongoDB、Casbah。

给定一个随机字符串列表:

  val names = {
    val listBuffer = new ListBuffer[String]
    for(n <- 1 to (new Random().nextInt(5) + 1)){
      val name = ((new Random().nextInt(26) + 65).asInstanceOf[Char]).toString
      listBuffer += name
    }
    listBuffer.toList
  }

给定一个 MongoDB 文档结构:

"_id": <uuid>  
"name": <string>  

如何使用单个 single MongoDBCollection.find() 语句查找名称等于列表中条目的所有文档? (即使用 $or)

谢谢, - 大学教师

Using Scala, MongoDB, Casbah.

Given a random list of strings:

  val names = {
    val listBuffer = new ListBuffer[String]
    for(n <- 1 to (new Random().nextInt(5) + 1)){
      val name = ((new Random().nextInt(26) + 65).asInstanceOf[Char]).toString
      listBuffer += name
    }
    listBuffer.toList
  }

Given a MongoDB document structure:

"_id": <uuid>  
"name": <string>  

How do I find all documents that have a name equal to an entry in my list using a single single MongoDBCollection.find() statement? (i.e using $or)

Thanks,
- Don

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱格式化 2025-01-05 04:47:39

MongoDB 有条件运算符 $in,可以测试字段的值是否在值列表中 (文档

collection.find({name: {$in: ["aaa", "bbb", "ccc"]}})

在 Casbah 中,这看起来像

collection.find("name" $in names)

MongoDB has conditional operator $in that lets test if a field's value is in a list of values (documentation)

collection.find({name: {$in: ["aaa", "bbb", "ccc"]}})

In Casbah this will look like

collection.find("name" $in names)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文