【发布时间】:2019-07-30 00:56:58
【问题描述】:
我知道这是一个非常基本的问题,但我不明白该怎么做。
我在 Python 3 和 MongoDB 3.4.19 中使用 pymongo 3.6.1。我正在尝试从数据库中检索低于某个日期的记录,按距离排序。通过单独的功能是:
db[database].MIDAS_stations.find(
{
"loc": {
"$near": {
"$geometry": {
"type": "Point",
"coordinates": coords
}
}
}
}
)
和
db[database].MIDAS_stations.find(
{
"Station start date": {
"$gt": date1
}
}
)
我尝试过使用聚合而不是查找,但我仍然没有找到这样做的方法。
我知道MongoDB/PyMongo: Querying multiple criteria - unexpected results 有类似的回答,但我的问题不同,因为它使用了地理参考数据。
来自MongoDB/PyMongo: Querying multiple criteria - unexpected results和https://stackoverflow.com/a/23577413/2313887我认为这个问题的答案是:
db[database].MIDAS_stations.find(
{
"loc": {
"$near": {
"$geometry": {
"type": "Point",
"coordinates": coords
}
}
},
"Station start date": {
"$lt": date1
}
}
)
但我仍然不确定这是否是正确的方法,或者它是否真的在查询最近的条目,然后只选择日期低于 date1 的条目。
【问题讨论】:
-
这与stackoverflow.com/a/23577250/3866828 不同,因为排序条件使我的任务复杂化。