mongodb - 蒙哥错误: cannot nest $ under $in

标签 mongodb mongodb-query

我正在尝试查询具有一对 basenameentries 的多个文档,而 entries 是一个包含名为 CRC

2 item2 的示例:

{
  "basename": "2020bb",
  "entries": [
    {
      "name": "030-c1.bin",
      "extension": "bin",
      "basename": "030-c1",
      "crc": "4f5e19bd",
      "size": 1048576
    },
    {
      "name": "030-c2.bin",
      "extension": "bin",
      "basename": "030-c2",
      "crc": "d6314bf0",
      "size": 1048576
    },
    {
      "name": "030-c3.bin",
      "extension": "bin",
      "basename": "030-c3",
      "crc": "47fddfee",
      "size": 1048576
    }
  ]
},
{
  "basename": "mutnat",
  "entries": [
    {
      "name": "sp-s2.sp1",
      "extension": "sp1",
      "basename": "sp-s2",
      "crc": "9036d879",
      "size": 1048576
    },
    {
      "name": "sp-s3.sp1",
      "extension": "sp1",
      "basename": "sp-s3",
      "crc": "c7f2fa45",
      "size": 1048576
    },
    {
      "name": "sp-4.sp1",
      "extension": "sp1",
      "basename": "sp-s4",
      "crc": "e72943de",
      "size": 1048576
    }
  ]
}

我知道 basenamecrc,我正试图找到许多包含正确对的项目。为此,我使用了 $in$all$elemMatch

{
  "basename": {
    "$in": [
      "2020bb",
      "mutnat"
    ]
  },
  "entries": {
    "$in": [
      {
        "$all": [
          { "$elemMatch": { "crc": "4f5e19bd" } },
          { "$elemMatch": { "crc": "d6314bf0" } },
          { "$elemMatch": { "crc": "47fddfee" } }
        ]
      },
      {
        "$all": [
          { "$elemMatch": { "crc": "9036d879" } },
          { "$elemMatch": { "crc": "c7f2fa45" } },
          { "$elemMatch": { "crc": "e72943de" } }
        ]
      }
    ]
  }
}

请注意,只是为了这个示例的简洁,我在 $in 中只有一项。实际上,这些数组中有多个项目。

但是使用这个查询我得到了这个错误:

MongoError: cannot nest $ under $in

编辑:澄清了我的数据和我的查询

最佳答案

db.xxx.find({
  "basename": "2020bb",
  "entries": {
     $elemMatch: {
       "crc": { $in: ["4f5e19bd", "d6314bf0", "47fddfee" ] }
     }
   }
})

关于mongodb - 蒙哥错误: cannot nest $ under $in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54244796/

相关文章:

python - 为什么 '$pull' 在 cherrypy 中不起作用

javascript - Mongoose - 使用 populate 方法后如何处理结果?

mongodb - 使用 GORM 获取 Mongo 集合时,找不到能够从类型 java.lang.Double 转换为类型 java.lang.Long 的转换器

node.js - 如何使用 NodeJS 向 mongodb 执行批量插入

java - 如何在 MongoDB 中进行分组选择

mongodb - 聚合时如何自动添加除一个字段外的所有字段?

mongodb - Mongodb-3.4 的最佳开源 gui 工具

node.js - 无法找到 $geoNear 查询的索引

javascript - 在javascript中循环完成后如何执行语句?

mongodb - 增加嵌套数组中的多个值