大家好,我是新来的MongoDB.我有产品集合,每个产品都有多个变种,每个变种都有多个属性.现在的问题是,我不能过滤变量.条件

  1. 按产品名称搜索->正在处理
  2. 按变体名称搜索-&>;不工作filter by variants.variant_name Full Case
  3. 按姓名搜索-工作

Mongoplayground

推荐答案

在处理管道内的属性之前,您可以对变量进行过滤阶段

  {
    $addFields: {
      variants: {
        $filter: {
          input: "$variants",
          cond: {
            $eq: [
              "$$this.variant_name",
              "Full Case"
            ]
          }
        }
      }
    }
  }

playground

Mongodb相关问答推荐

如何使用ID数组对一个集合中的金额求和并更新另一个集合中的字段?

try 从数据库创建、获取数据时失败(pymongo、MongoDB、docker-compose)

Mongo聚合的具体格式

Golang:如何判断 collection.Find 是否没有找到任何文件?

(MongoDB)在同一管道中结合联合和交集

Ruby on Rails 的 Cassandra、mongodb 或 couchdb

MongoDB 的 BinData(0, "e8MEnzZoFyMmD7WSHdNrFJyEk8M=") 中的0是什么意思?

在 Nodejs 中找不到模块

如何在 Mongoose 中更新数组值

java.lang.IncompatibleClassChangeError:Implementing class Mongo

TypeError: object of type 'Cursor' has no len()

MongoDB 数据库,相当于 SELECT column1, column2 FROM tbl

Cannot connect to MongoDB errno:61

插入违反唯一索引的 MongoDB 文档时如何捕获错误?

使用 MongoDB 的 map/reduce 来分组两个字段

mongodb:upserting:仅在插入文档时设置值

mongodb: UnknownError assertion src/mongo/db/server_options_helpers.cpp:355

填充mongoose后查找

无法使用命令写入模式错误,降级到兼容模式

MongoDB Compass 中 JSON 输入意外结束