我正在开发一个小型 NodeJS Web 应用程序,使用 Mongoose 访问我的 MongoDB 数据库。我的收藏的简化架构如下:
var MySchema = mongoose.Schema({
content: { type: String },
location: {
lat: { type: Number },
lng: { type: Number },
},
modifierValue: { type: Number }
});
不幸的是,我无法以对我来说更方便的方式对从服务器检索到的数据进行排序。我希望根据距给定位置的距离对结果进行排序(location)但考虑到带有 a 的修饰函数修饰符值这也被视为输入。
我打算做的事情写在下面。然而,这种排序功能似乎不存在。
MySchema.find({})
.sort( modifierFunction(location,this.location,this.modifierValue) )
.limit(20) // I only want the 20 "closest" documents
.exec(callback)
mondifierFunction 返回一个 Double。
到目前为止,我已经研究了使用 mongoose 的 $near 函数的可能性,但这似乎没有排序,不允许使用修饰符函数。
由于我对 Node.js 和 mongoose 相当陌生,因此我可能对我的问题采取了完全错误的方法,因此我愿意完全重新设计我的编程逻辑。
先感谢您,