【问题标题】:Is there a way to use $regex with $all in mongoDB?有没有办法在 mongoDB 中将 $regex 与 $all 一起使用?
【发布时间】:2020-07-19 04:32:03
【问题描述】:

我正在开发一个从前端接收字符串数组的应用程序。我的 mongoDB 数据库中的每个文档都有一组关键字。从前端收到的字符串可能是关键字的子字符串。现在我需要查询数据库,使其返回包含所有这些关键字子字符串的所有文档。
例如。假设
文档 1 的关键字数组:["substation", "220/60", "kV"]
文档 1 的关键字数组:["substation", "220", "kV", "delhi"]
文档 1 的关键字数组:["substation", "kV", "Bombay"]
从前端接收到的数组:["substa", "220"]

我需要数据库返回前两个文档,因为接收到的数组的两个元素都是两个文档中关键字的子字符串。但不应返回第三个文档,因为它不包含“220”。我无法为此开发查询。

【问题讨论】:

    标签: javascript arrays mongodb rest mern


    【解决方案1】:

    假设您对每个关键字都有查询(本质上是相同的查询),您可以将它们与 $and 组合:

    {'$and' => [<query for substa>, <query for 220>]}
    

    你也应该考虑full text search

    【讨论】:

    • 如果我知道数组中有多少输入字符串但这是在运行时确定的,这可以工作。否则我将不得不通过数组映射并包含单独的查询。
    猜你喜欢
    • 2018-03-15
    • 2016-11-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多