MongoDb中子文档字段的$ match运算符

Any*_*One 3 mongodb aggregation-framework

我正在尝试MongoDB的新管道查询,所以我尝试执行下面的查询.

{
aggregate: 'Posts',
pipeline: [
    { $unwind: '$Comments'},
    { $match: {'$Comments.Owner': 'Harry' }},
    {$group: {
        '_id': '$Comments._id'
        }
     }
   ]
}
Run Code Online (Sandbox Code Playgroud)

并且没有任何匹配查询所以空结果返回.我猜问题可以在$ match命令上.我使用点缀符号匹配评论所有者但不确定它是否完全正确.为什么这个查询不会返回"Harry"的Ownders.我确信它存在于db中.

Joh*_*yHK 11

您不要使用字段名称的$前缀$match.

试试这个:

{
  aggregate: 'Posts',
  pipeline: [
    { $unwind: '$Comments'},
    { $match: {'Comments.Owner': 'Harry' }},
    { $group: {
      '_id': '$Comments._id'
    }}
  ]
}
Run Code Online (Sandbox Code Playgroud)