Javascript MongoDB按日期查询和按距离排序(Mongoose&x2B;Express应用程序)
我正在构建一个事件应用程序,希望获得某个日期的所有事件,然后按位置对它们进行排序。如何实现这样的请求?这是架构的外观:Javascript MongoDB按日期查询和按距离排序(Mongoose&x2B;Express应用程序),javascript,mongodb,express,mongoose,Javascript,Mongodb,Express,Mongoose,我正在构建一个事件应用程序,希望获得某个日期的所有事件,然后按位置对它们进行排序。如何实现这样的请求?这是架构的外观: var eventSchema = mongoose.Schema({ _id: { type: String, required: true }, name: { type: String, required: true }, start_time: { type: Date }, location: { type: {
var eventSchema = mongoose.Schema({
_id: {
type: String,
required: true
},
name: {
type: String,
required: true
},
start_time: {
type: Date
},
location: {
type: {
type: String
},
coordinates: []
},
});
我知道我可以使用$near查询位置,我已经成功运行了这个程序。但我想先查询“开始时间”,然后根据当天发生的事件与我的距离进行排序。如有任何建议,将不胜感激;) 使用
$geoNear
agg管道操作符。它将按照与指定点的接近程度返回文档。使用调用中的query
选项,您可以告诉$geoNear
进一步将查找限制为仅限于您的开始时间(或任意查询表达式)。详情如下:
我设法让它与此查询一起工作:
{
location: {
$near : {
$geometry: { type: "Point", coordinates: [longitude,latitude]
},
$maxDistance: 10000
}
},
$and: [
{ start_time : {$gte: now, $lt: tomorrow} }
]
}
感谢这是一个有点复杂的小例子,我让它与$and运算符一起工作,并稍微扭曲了“排序”。谢谢你