发布 mongdb 集合时的填充器数组



我正在尝试返回一个特定的集合,但是,我想过滤集合中的一个数组。我不确定这是否可能。在下面的示例中,我尝试返回带有 _id: 7ARk3dc2JA8g5pamA 的集合并过滤掉数组对象以进行"candidateUserId": "2"。我正在Meteorjs应用程序中执行此操作。

例如:"收藏"

{
  "_id": "7ARk3dc2JA8g5pamA",
  "jobTitle": "Developer",
  "candidateApplication": [
    {
      "candidateUserId": "1",
      "applied": true
    },
    {
      "candidateUserId": "2",
      "applied": false
    }
  ]
}

路径: Publish command

return Jobs.find({ _id: 7ARk3dc2JA8g5pamA }, {
  $filter: {
    input: candidateApplication,
    cond: { candidateUserId: { $eq: 1 } }
  }
});
Jobs.find({ _id: 7ARk3dc2JA8g5pamA }, { candidateApplication: { $elemMatch: { candidateUserId: 2 } } }

这应该返回仅包含 _id 和候选 UserId 数组的文档,但该数组现在将仅包含所需的对象。

{ "_id" : 7ARk3dc2JA8g5pamA, "candidateApplication" : [ { "candidateUserId": 2, "applied": false } ] } 
然后,您可以使用 candidate Application[0].candidate

UserId 和 candidate Application[0].applied 获取数据

如上面的注释中所述,如果同一候选 UserID 的实例更多,则只会返回第一个实例。

最新更新