【问题标题】:Mongo db string based range queryMongodb 基于字符串的范围查询
【发布时间】:2020-04-30 19:21:31
【问题描述】:

我有一个型号名称 product,它有一个键 ageGroup: ["10 - 12", "13 - 15"] 范围字符串数组

如果我以数字或字符串形式传递年龄组 10 或 11 或 15,我需要查询所有元素。

前任

db.product.find({ageGroup: 11})

或者

db.product.find({ageGroup: 15})

抱歉,使用移动应用输入了错误的问题。

【问题讨论】:

    标签: mongodb mongoose mongodb-query


    【解决方案1】:

    如果您以相同的格式保存它,那么您可以使用 substr 聚合查询来提取数据。 https://docs.mongodb.com/manual/reference/operator/aggregation/substr/

    【讨论】:

      【解决方案2】:

      如果您有预定义的范围字符串列表。您可以首先从该列表中找到范围,在 MongoDB 之外,然后使用该字符串进行查询。实施将取决于您使用的语言。

      如果您事先没有该信息。您可以在aggregation pipeline 中使用$map$split$toInt$arrayToObject["10 - 12", "13 - 15"] 转换为[{ "from": 10, "to": 12 }, { "from": 13, "to": 15 }] 之类的东西,这样会更容易过滤。

      【讨论】:

      • 感谢您的帮助,使用对象数组帮助很大。但在我的情况下,不需要在 db 中保存对象数组。反正我做到了。
      猜你喜欢
      • 2016-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 2011-10-11
      相关资源
      最近更新 更多