【问题标题】:How to match float value in mongoquery?如何匹配mongoquery中的浮点值?
【发布时间】:2021-08-28 05:27:30
【问题描述】:

这是我的 MongoDB 示例文档集合。我需要一个预期的结果,以便任何人指导我解决我的问题

/* 1 */
{
  "_id" : 1.0,
  "user_id" : "5c592f6716209a24f4125001",
  "tu_code" : "5"
}
/* 2 */
{
  "_id" : 2.0,
  "user_id" : "5c592f6716209a24f4125002",
  "tu_code" : "50"
}
/* 3 */
{
  "_id" : 3.0,
  "user_id" : "5c592f6716209a24f4125003",
  "tu_code" : "50.21"
}
/* 4 */
{
  "_id" : 4.0,
  "user_id" : "5c592f6716209a24f4125004",
  "tu_code" : "50.22"
}
/* 5 */
{
  "_id" : 5.0,
  "user_id" : "5c592f6716209a24f4125005",
  "tu_code" : "52"
}
/* 6 */
{
  "_id" : 3.0,
  "user_id" : "5c592f6716209a24f4125006",
  "tu_code" : "5.1"
}
/* 7 */
{
  "_id" : 6.0,
  "user_id" : "5c592f6716209a24f4125007",
  "tu_code" : "5.1.1"
}
/* 8 */
{
  "_id" : 7.0,
  "user_id" : "5c592f6716209a24f4125008",
  "tu_code" : "5.2"
}
/* 9 */
{
  "_id" : 8.0,
  "user_id" : "5c592f6716209a24f4125009",
  "tu_code" : "5.2.1"
}

这里我在下面提到了我的 mongo 聚合查询

[ 
    { "$project": { 
        "tu_code": { "$toLower": "$tu_code" }, 
    }}, 
    { "$match": { "tu_code": {"$regex": "^5.*"}}}
]

以上查询产生以下结果

    | _id| tu_code |

    | ---| --------|

    | 1  | 5     |
    | 2  | 50    |
    | 3  | 50.21 |
    | 4  | 50.22 |
    | 5  | 52    |
    | 6  | 53    |
    | 7  | 5.1   |
    | 8  | 5.1.1 |
    | 9  | 5.2   |
    | 10 | 5.2.1 |

但我想要预期结果在下面给出

    | _id| tu_code |

    | ---| --------|

    | 1  | 5     |
    | 7  | 5.1   |
    | 8  | 5.1.1 |
    | 9  | 5.2   |
    | 10 | 5.2.1 |

谁能帮我解决这个问题,我不知道如何得到我的预期结果。

【问题讨论】:

  • 请发布一些示例文档并解释您的预期结果。
  • @turivishal 我匹配了 5 的 tu_code,我只想获得 5 和 5. 值,但我得到 50,51 个不需要的值,所以我希望我的值以 5,5.1,5.1.1 开头明智的
  • @turivishal 我发布了示例文件,所以请验证它。

标签: regex mongodb mongodb-query pymongo


【解决方案1】:
  • 您可以在搜索表达式的末尾使用\b(字边界)运算符,
[
  {
    "$match": {
      "tu_code": {
        "$regex": "^5\\b"
      }
    }
  }
]

Playground

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-30
    • 2015-10-30
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 2012-12-18
    • 2018-02-17
    相关资源
    最近更新 更多