我有这个集合
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.insert(
{
"TransportID":"9999",
"StopsBy":[
{"Station":"Salerno",
"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":"Roma Termini",
"StopsAt":ISODate("2016-01-01T11:35:00Z")}]
})
并且在输入的两个站点中给出,我只想要那些站点A的时间小于站点B的时间的文件。例如,如果我选择作为站点A Roma Termini和作为站点B Salerno,系统必须返回上面的第一个文件(因为时间(罗马)时间(萨勒诺))
我认为这样做的唯一方法是提取包含两个站点的所有文档,检索它们的时间以及它们是否符合我的标准返回文档。但这个解决方案太神器了。是否有一个查询来执行此操作?
我的最终目标是: 我需要一种方法来获得,例如,罗马 - >萨勒诺文件但不是萨勒诺 - >当用户搜索两个电台时,罗马文件。问题是我得到了两个方向,但我只想要正确的方向。 感谢
答案 0 :(得分:0)
MongoDb不是为这种查询而设计的,可能值得查看关系数据库来存储关系数据。
然而,您可以根据给定的用途对文档进行重新建模?
答案 1 :(得分:0)
查看the $gt
operator,它匹配所有具有大于某个值的特殊字段的文档。在query文档时使用它。