仅从Mongodb Query中提取字段

时间:2016-12-19 11:07:49

标签: mongodb

我有这个集合

 db.Tratte.insert(
    {
    "TransportID":["9901","9903"],
    "StopsBy":[
     {"Station":"Roma Termini",
     "StopsAt":ISODate("2016-01-01T09:05:00Z"),
     "LeavesAt":ISODate("2016-01-01T09:25:00Z")},
      {"Station":"Napoli Centrale",
     "StopsAt":ISODate("2016-01-01T10:37:00Z"),
     "LeavesAt":ISODate("2016-01-01T10:52:00Z")},
     {"Station":"Salerno",
     "StopsAt":ISODate("2016-01-01T11:35:00Z")}]
    })

我希望在火车离开“罗马特米尼”时提取日期(只有日期)。

我尝试了以下查询,但通过这种方式,我获得了所有信息。

db.Tratte.find({"TransportID":"9901"},
   { StopsBy: 
     { 
        $elemMatch: { "Station": "Roma Termini" } 
     } 
    }

)

如何仅提取与“Roma Termini”相关的“LeavesAt”字段? 感谢

2 个答案:

答案 0 :(得分:1)

使用聚合查询 -

navneet

答案 1 :(得分:1)

试试这个

db.Tratte.find(
    {"TransportID":"9901"}, 
    {StopsBy: { $elemMatch: { "Station": "Roma Termini" } }, "StopsBy.LeavesAt": 1 }
) 

您需要使用点符号在StopsBy文档中“内部”