Mongodb 使用双嵌套元素数组进行查询

Mongodb 使用双嵌套元素数组进行查询,mongodb,mongoose,mongoose-schema,Mongodb,Mongoose,Mongoose Schema,我被这件事难住了。我试图用索引[0]查询两级嵌套文档。这是我的mongoDb文档 [ { "_id": ObjectId("5b8803a07078906483e2e8a9"), "vote": [ [ "a4d77175-250d-4990-bc1c-d79c8175c1f0", "5b82e2d1b47b3513f3f25854" ], [ "a934cf1d-ecb1-4764-b8bb

我被这件事难住了。我试图用索引[0]查询两级嵌套文档。这是我的mongoDb文档

[
  {
    "_id": ObjectId("5b8803a07078906483e2e8a9"),
    "vote": [
      [
        "a4d77175-250d-4990-bc1c-d79c8175c1f0",
        "5b82e2d1b47b3513f3f25854"
      ],
      [
        "a934cf1d-ecb1-4764-b8bb-9c3c40c1128d",
        "5b82e355b47b3513f3f25858"
      ]
    ],
    "election_id": ObjectId("5b82e3cfb47b3513f3f2585a"),
    "user_id": ObjectId("5b82e2d1b47b3513f3f25854"),
    "date": "Thu Aug 30 2018 17:48:00 GMT+0300 (EAT)",
    "__v": 0
  }
]
我试图在投票中得出这个值“a4d77175-250d-4990-bc1c-d79c8175c1f0”。 我试过了,但没用

exports.getVotesByPosts = (req, res, next) => {
  Vote.find({'vote[0][0]': req.params.id}, (err, vote) => {
    res.json(vote);
  }).sort( { date: -1 });
}
提前感谢你的帮助。关于

您需要对操作员使用查询


下面是我如何使用Anthony的答案修复的

    Vote.find({
      "vote": {
        "$elemMatch": {
          "$elemMatch": {
            "$eq": req.params.id
          }
        }
      }
    });

您知道投票[0][0]和投票[0][1]吗?我们可以在其中使用位置字符$只获取匹配的数组吗?是投影运算符,我们不能用它来查询。是的,问题是我们能用这里的投影吗,先生,这是我要问你的问题
    Vote.find({
      "vote": {
        "$elemMatch": {
          "$elemMatch": {
            "$eq": req.params.id
          }
        }
      }
    });