MongoDBを使用してMongoDBデータベースにアクセスするための小さなNodeJS Webアプリケーションを開発しています。私のコレクションの単純化されたスキーマは以下の通りである:Mongooseでソート関数を定義する方法
var MySchema = mongoose.Schema({
content: { type: String },
location: {
lat: { type: Number },
lng: { type: Number },
},
modifierValue: { type: Number }
});
は残念ながら、私は、サーバーから、それは私にとってより便利な方法を取得したデータをソートすることはできませんよ。与えられた位置(の位置)からの距離に応じて結果を並べ替えるが、modifierValueの修飾子関数を考慮に入れて入力と見なしたい。
私が意図していることは以下のとおりです。しかし、この種のソート機能は存在しないようです。
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にかなり新しいので、私は自分の問題に完全に間違ったアプローチをしているかもしれないので、私は自分のプログラミングロジックの再設計を完了するために開いています。
は、あなたがこの既に与えられた質問の日付への答えを見つけたかもしれないが、私はとにかくお答えします、事前に