如何在mongodb聚合中将动态值传递给$ in

     2023-03-29     276

关键词:

【中文标题】如何在mongodb聚合中将动态值传递给$ in【英文标题】:how to pass dynamic value to $in in mongodb aggregation 【发布时间】:2021-11-23 21:59:15 【问题描述】:

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

[
      
       $match:  type: 'FOLLOWUP'  
     ,
     
       $lookup: 
         from: 'orders',
         as: 'orders',
         pipeline: [
           
              $match: 
                 'status':  $in: '$activeFilter' 
              
           
         ]
       
     
]

在上面的示例中,status 包含一些特定的字符串,activeFilter 具有包含该活动的活动状态的字符串数组。 activeFilter 是一个数组,但我收到 $in 需要一个数组的错误。

任何帮助将不胜感激。

【问题讨论】:

activeFilter从何而来?你的意思是把$in: activeFilter activeFilter 是一个保存在活动中的数组,每个活动都不同,它来自活动文档,这就是为什么我在代码中写了“$activeFilter”,它不是变量。 好的。如果您的管道的第一步返回许多活动,每个活动在 activeFilter 中都有不同的元素列表,那么您希望它在 oders 匹配步骤中如何工作?它应该是所有不同 activeFilters 的 concat 吗?应该是一个特定的activeFilter吗?你可能想从这里开始docs.mongodb.com/manual/reference/operator/aggregation/lookup/… 【参考方案1】:

您正在使用聚合管道,$in 运算符在 find() 查询和聚合管道中的工作方式不同。在聚合管道中,语法如下:

 $in: [ <expression>, <array expression> ] 

所以,$in 应该有 2 个参数,其中 value 是第一个参数,array 是第二个参数。你应该像这样改变你的代码:

"$match": 
  "$expr": 
    "$in": ["$status", "$activeFilter"]
  

Working example

【讨论】:

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

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

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

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

如何在php中将div值传递给mysql查询[关闭]

】如何在php中将div值传递给mysql查询[关闭]【英文标题】:howtopassdivvaluetomysqlqueryinphp[closed]【发布时间】:2013-02-2622:58:16【问题描述】:如何在phpmysql中将div值传递给数据库举个例子我有<divid=\'item\'>50</div>是否有可能将div... 查看详情

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

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

如何在flex 3中将动态值作为数组集合的字段名称传递

】如何在flex3中将动态值作为数组集合的字段名称传递【英文标题】:Howtopassdynamicvaluesasfieldnameforanarraycollectioninflex3【发布时间】:2014-11-0500:21:21【问题描述】:publicfunctionAdddynamic_values(val:String):voidfor(vari:int=0;i<Gridvaltest.length;i... 查看详情

如何在 swift 中将 JSON `null` 值传递给`nil` 值?

】如何在swift中将JSON`null`值传递给`nil`值?【英文标题】:HowtopassJSON`null`valueto`nil`valueinswift?【发布时间】:2019-08-0203:42:01【问题描述】:我有这个json,其中hospitalNumber有值,并且有实例返回null值。hospitalNumber具有重要意义,因... 查看详情

如何在 JSP 中将 JavaScript 值传递给 Scriptlet?

】如何在JSP中将JavaScript值传递给Scriptlet?【英文标题】:HowdoIpassJavaScriptvaluestoScriptletinJSP?【发布时间】:2011-08-0717:54:26【问题描述】:谁能告诉我【问题讨论】:您能否提供更准确的需求细节?比如你打算实现什么……比如可... 查看详情

reactjs - 如何在formik中将状态值传递给初始值

】reactjs-如何在formik中将状态值传递给初始值【英文标题】:Howtopassstatevaluestoinitialvaluesinformikinreactjs【发布时间】:2019-05-2400:18:01【问题描述】:我在我的反应应用程序中使用formik库。最初,我在构造函数中声明了状态值,在com... 查看详情

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

】如何在mvc视图中将剃刀值传递给jquery函数【英文标题】:howtopassarazorvaluetoajqueryfunction,inanmvcview【发布时间】:2013-08-2102:44:33【问题描述】:所以我尝试使用剃刀“@”表示法(在MVC-4视图中)将参数传递给javascript函数,但出现... 查看详情

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

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

如何在 django 的基于类的视图中将值传递给模板?

】如何在django的基于类的视图中将值传递给模板?【英文标题】:Howtopassavaluetothetemplateinclassbasedviewsindjango?【发布时间】:2020-12-2319:34:36【问题描述】:我想将变量的值发送到PostDetail模板,这是views.py文件的功能classPostDetailView(D... 查看详情

如何在角度 2 中将输入值转换为大写(传递给 ngControl 的值)

】如何在角度2中将输入值转换为大写(传递给ngControl的值)【英文标题】:Howtoconvertinputvaluetouppercaseinangular2(valuepassingtongControl)【发布时间】:2016-06-1923:24:25【问题描述】:我正在尝试使用ngControl在角度2中的值来验证输入字段... 查看详情

如何在 Swift 3.0 中将 TableViewCell 值传递给新的 ViewController?

】如何在Swift3.0中将TableViewCell值传递给新的ViewController?【英文标题】:HowtopassTableViewCellvalueintonewViewControllerinSwift3.0?【发布时间】:2017-02-1407:43:05【问题描述】:我有这个JSON数据move.json"status":"ok","movement":["refno":"REF1","dtfrom":"2017 查看详情

如何将字符串数组动态传递给Java中的SQL“IN”子句? [复制]

】如何将字符串数组动态传递给Java中的SQL“IN”子句?[复制]【英文标题】:HowtopassarrayofstringsdynamicallytoSQL"IN"clauseinJava?[duplicate]【发布时间】:2013-12-1505:43:57【问题描述】:我有一个包含特定值的字符串数组“String[]”。... 查看详情

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

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

如何在swift 3中将布尔值从表格视图单元格类传递给表格视图类?

】如何在swift3中将布尔值从表格视图单元格类传递给表格视图类?【英文标题】:howtopassboolvaluefromtableviewcellclasstotableviewclassinswift3?【发布时间】:2017-09-0705:21:19【问题描述】:在这里,我正在使用委托将我的布尔值从表格视图... 查看详情

如何在控制器的会话中将值传递给视图刀片 PHP laravel?

】如何在控制器的会话中将值传递给视图刀片PHPlaravel?【英文标题】:HowtopassvalueinsessionatthecontrollertotheviewbladePHPlaravel?【发布时间】:2020-04-2909:12:09【问题描述】:我在控制器中有一个会话,它携带上一页的数据。目前,我想... 查看详情

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

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