【发布时间】:2017-05-18 03:28:19
【问题描述】:
我正在使用 Mongoose 开发一个小型 NodeJS Web 应用程序来访问我的 MongoDB 数据库。下面给出了我的收藏的简化架构:
var MySchema = mongoose.Schema({
content: { type: String },
location: {
lat: { type: Number },
lng: { type: Number },
},
modifierValue: { type: Number }
});
不幸的是,我无法按照对我来说更方便的方式对从服务器检索到的数据进行排序。我希望根据它们与给定位置 (location) 的距离对我的结果进行排序,但要考虑到带有 modifierValue 的修饰符函数,该修饰符函数也被视为输入。
我打算做的写在下面。但是,这种排序功能似乎不存在。
MySchema.find({})
.sort( modifierFunction(location,this.location,this.modifierValue) )
.limit(20) // I only want the 20 "closest" documents
.exec(callback)
mondifierFunction 返回一个 Double。
到目前为止,我已经研究了使用猫鼬的 $near 函数的可能性,但这似乎没有排序,不允许使用修饰符函数。
由于我对 node.js 和 mongoose 还很陌生,我可能对我的问题采取了完全错误的方法,所以我愿意重新设计我的编程逻辑。
提前谢谢你,
【问题讨论】:
标签: node.js mongodb sorting mongoose