我有这个集合
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”字段? 感谢
答案 0 :(得分:1)
使用聚合查询 -
navneet
答案 1 :(得分:1)
试试这个
db.Tratte.find(
{"TransportID":"9901"},
{StopsBy: { $elemMatch: { "Station": "Roma Termini" } }, "StopsBy.LeavesAt": 1 }
)
您需要使用点符号在StopsBy文档中“内部”