首页 > 解决方案 > 匹配 MongoDB 中嵌套子文档的嵌套数组

问题描述

我正在尝试创建一个符合两个条件的查询。匹配特定的 userId 并匹配一系列 Id。

示例文档可能如下所示: 示例文档

我尝试find通过添加userId然后使用 MongoDB$in运算符来匹配feature(作为 id)的列表

  const featureIds = features.map(feature => feature._id)
    console.log(featureIds)
    const isFeatureExists = await this.userShopModel.find({
      userId,
      'items.feature': { $in: featureIds },
    })
    console.log(isFeatureExists)

我也尝试过不同版本的aggregate但没有任何运气。

任何mongo专家,谁能帮助我?

标签: javascriptmongodbmongooseaggregate

解决方案


使用 _id 进行过滤

const featureIds = features.map(feature => feature._id)
    console.log(featureIds)
    const isFeatureExists = await this.userShopModel.find({
      _id : userId,
      'items.feature': { $in: featureIds },
    })
    console.log(isFeatureExists)

推荐阅读