如何在 mongodb 聚合中将动态字符串传递给 $regex

     2023-03-29     142

关键词:

【中文标题】如何在 mongodb 聚合中将动态字符串传递给 $regex【英文标题】:How a pass a dynamic string to $regex in mongodb aggregation 【发布时间】:2021-11-24 05:04:31 【问题描述】:

我有两个系列,一个是广告系列,另一个是订单。我必须过滤每个广告系列的订单。所以我正在做的是获取所有广告系列,然后查找符合某些特定条件的订单。

[
  
   $match:  type: 'FOLLOWUP'  
 ,
 
   $lookup: 
     from: 'orders',
     as: 'orders',
     pipeline: [
       
          $match: 
             'title':  $regex: '$keyword', $options: 'i' ,
          
       
     ]
   
 
]

在上面的示例中,每个广告系列都包含 keyword 类型为 string 的字段。因此,我必须过滤所有包含keyword 的广告系列的所有订单,每个广告系列都有不同的关键字。如何将动态引用传递给 $regex,如果我使用的是硬编码字符串,它可以正常工作,但对于传递引用 ('$keyword'),它不起作用。

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

你可以试试$regexMatch聚合表达式运算符,

letkeyword 从广告系列集合传递到查找 $regexMatch 聚合表达式运算符将输入作为title 和正则表达式作为keyword 引用来自let 使用$$ 符号
[
   $match:  type: "FOLLOWUP"  ,
  
    $lookup: 
      from: "orders",
      as: "orders",
      let:  keyword: "$keyword" ,
      pipeline: [
        
          $match: 
            $expr: 
              $regexMatch: 
                input: "$title",
                regex: "$$keyword",
                options: "i"
              
            
          
        
      ]
    
  
]

Playground

【讨论】:

如何在节点js中将变量名作为mongodb的集合名称传递

】如何在节点js中将变量名作为mongodb的集合名称传递【英文标题】:Howtopassvariablenameascollectionnameformongodbinnodejs【发布时间】:2017-01-1404:51:21【问题描述】:我正在使用nodejs和mongodb,我想将一个变量传递给集合varid="someid";db.collect... 查看详情

如何在 ReactJS 中将更改的状态从子组件传递给其父组件

...更改父状态,有什么线索我做错了吗?我正在使用redux从mongodb获取 查看详情

如何在 Entity Framework Core 中将连接字符串传递给 DBContext?

】如何在EntityFrameworkCore中将连接字符串传递给DBContext?【英文标题】:HowdoIpassconnectionstringtoDBContextinEntityFrameworkCore?【发布时间】:2020-12-0709:54:17【问题描述】:是否可以在构造函数中配置/传递连接字符串到DbContext?publicpartialc... 查看详情

如何在pentaho mongodb输入查询(聚合)中传递变量

】如何在pentahomongodb输入查询(聚合)中传递变量【英文标题】:howpassvariableinpentahomongodbinputquery(aggregation)【发布时间】:2019-09-2022:09:19【问题描述】:我想通过聚合在MongoDB输入中使用变量替换。但这不起作用。前任:db.fch.aggre... 查看详情

如何在plsql中将字符串数据类型传递给数字数据类型

】如何在plsql中将字符串数据类型传递给数字数据类型【英文标题】:Howtopassstringdatatypetonumberdatatypeinplsql【发布时间】:2019-06-3008:10:22【问题描述】:我有这样的程序...declarev_psgvarchar2(10);id_nonumber;beginselectvalueintov_psgfromsettings_amw... 查看详情

如何在 EF6 中将连接字符串传递给 DataContext

】如何在EF6中将连接字符串传递给DataContext【英文标题】:HowtopassconnectionstringtoDataContextinEF6【发布时间】:2021-12-2703:42:15【问题描述】:我有一个ASP.NETMVC5Web应用程序并有以下代码:publicHAZID_DataContext():base("HAZIDDEV")System.Data.Entity.... 查看详情

如何在vuejs中将动态鼠标滚动值作为道具传递(代码片段)

我正在使用Laravel-VueJS框架。我想检测鼠标滚动的Y位置,并将其作为prop动态传递给组件Navbar。为此,我创建了一个eventListener并将window.scrollY值存储到data()中的变量scrollPos中。在此之后,我将scrollPos作为支持传递给Navbar组件,... 查看详情

如何在http get中将多个字符串传递给一个url?

】如何在httpget中将多个字符串传递给一个url?【英文标题】:Howtopassmultiplestringsintoaurlinhttpget?【发布时间】:2019-01-2721:14:48【问题描述】:这是我当前的代码:vardekstring="dk"resp,err:=c.Get("https://google."VALUEHERE"")如果我需要一堆不同... 查看详情

如何在 Python 2 中将字符串传递给 subprocess.Popen? [复制]

】如何在Python2中将字符串传递给subprocess.Popen?[复制]【英文标题】:HowdoIpassastringintosubprocess.PopeninPython2?[duplicate]【发布时间】:2010-11-2802:58:14【问题描述】:我想使用Popen从Python(2.4/2.5/2.6)运行一个进程,并且我想给它一个字符... 查看详情

在 express API 中获取字符串以传递给 mongodb 查找函数

】在expressAPI中获取字符串以传递给mongodb查找函数【英文标题】:FetchstringinexpressAPItopassintomongodbfindfunction【发布时间】:2018-12-1604:54:01【问题描述】:我正在使用expressAPIjs来连接mongoDB。我正在尝试将参数传递给mongodb的find函数,... 查看详情

如何在 PyQt5 中将字符串数组传递给 dbus? [复制]

】如何在PyQt5中将字符串数组传递给dbus?[复制]【英文标题】:HowtopassanarrayofstringtodbusinPyQt5?[duplicate]【发布时间】:2015-03-2011:02:56【问题描述】:我正在尝试使用python3.4和pyqt5.4对java编写的守护进程进行dbus调用,我正在调用的方... 查看详情

如何在 mvc 视图中将剃刀值传递给 jquery 函数

...参数传递给javascript函数,但出现语法错误:“未终止的字符串常量”我应该用另一种方式来写这个吗?@foreach(variteminModel)...& 查看详情

在django中将动态变量从父模板传递给子模板

】在django中将动态变量从父模板传递给子模板【英文标题】:passingdynamicvariablefromparenttemplatetochildtemplateindjango【发布时间】:2020-09-2701:25:21【问题描述】:我有一个模板songs.html,其中包含一个子模板addToPlaylist.html。我需要动态... 查看详情

在mongodb聚合管道中将毫秒转换为日期以进行分组?

】在mongodb聚合管道中将毫秒转换为日期以进行分组?【英文标题】:convertmillisecondstodateinmongodbaggregationpipelineforgroupby?【发布时间】:2015-07-0516:39:43【问题描述】:我必须在mongodb聚合pipiline中将毫秒转换为日期格式-我的查询是-db... 查看详情

在mongodb聚合管道中将毫秒转换为日期以进行分组?

】在mongodb聚合管道中将毫秒转换为日期以进行分组?【英文标题】:convertmillisecondstodateinmongodbaggregationpipelineforgroupby?【发布时间】:2015-07-0516:39:43【问题描述】:我必须在mongodb聚合pipiline中将毫秒转换为日期格式-我的查询是-db... 查看详情

如何在struts2中将迭代器索引值传递给javascript?

我在Struts2中有一个动态表。我想在其中将迭代器索引值传递给Javascript函数。我怎样才能做到这一点?我已经给出了下面的代码。这是我的表:<tableclass="tblborder"id="priorIncident"><thead><trbgcolor="gray"><thcolspan="5"align="cen... 查看详情

在mongodb聚合中将多个对象合并为一个对象

】在mongodb聚合中将多个对象合并为一个对象【英文标题】:Mergingmultipleobjectsintoasingleobjectinthemongodbaggregation【发布时间】:2021-12-1805:05:51【问题描述】:这就是我所处的场景。我有以下一种由聚合阶段返回的数组。为简单起见,... 查看详情

如何在脚本中将变量传递给总计

】如何在脚本中将变量传递给总计【英文标题】:Howtopassvariabletototalinscript【发布时间】:2018-07-0310:54:47【问题描述】:我有以下代码要使用,但我不知道如何将保存购物车总数的[TOTAL]变量传递给下面贝宝脚本中的总数。否则买... 查看详情