如何使用字符串数组过滤具有多个$in条件的记录(有些是可选的$in)?Mongoose/MongoDB

jq6vz3qz  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(183)

你可以看到我的Mongodb记录在最后...我现在试图实现搜索功能,我疯了复选框过滤我的项目,下面我列出了这些数组后,我点击了多个复选框(见1,2和3).
我尝试用$in进行多个匹配查询的聚合,但没有成功。下面的数组用于检查记录。
例如:[“餐厅”、“商场”]需要在记录中检查“commercialType”,同时[“空调房”、“三相电”]需要在记录中检查“propertyFeatures.name“。因此,如果存在具有这些筛选条件的记录,则必须显示所有匹配记录。
第一个问题

kyks70gy

kyks70gy1#

您可能缺少$或运算符,因此示例管道变为

[
  {"$match": {
    "$or": [
      {
        "commercialType": {
          "$in": ["Restaurant", "Hotel"]
       },
       {
        "propertyFeatures.name": {
          "$in": ['AC Rooms']
        }
      } 
    ]
  }
]

MongoDB文档:https://www.mongodb.com/docs/manual/reference/operator/aggregation/or/#error-handling

相关问题