首页 > 解决方案 > 使用 mongoose 检查对象数组中的公共数据

问题描述

我的猫鼬方案如下

Project: {
    name: String,
    stat: Number,
    users: [
        {user_id: String}
    ]
}

所以每个项目都包含多个用户。我得到了两个用户 ID,我需要找到包含这两个 ID 的文档。尝试使用 elemmatch 但无法找出正确的语法。请建议查找此类文件的方法。

这是我试过的代码

    Project.find({ 
    users: { 
       $elemMatch: { id: req.query.id1 },
       $elemMatch: { id: req.query.id2 } 
    }
 })

但这会返回包含任何一个 id 的所有项目,而不是两者。

标签: javascriptnode.jsmongodbmongoose

解决方案


所以我的原始代码是好的,由于其他方面的一些小错误,它没有运行。

 Project.find({ 
    users: { 
        $elemMatch: { id: req.query.id1 },
        $elemMatch: { id: req.query.id2 } 
    }
 })

这是代码。我会把它留在这里以防有人遇到同样的问题


推荐阅读