0
したがって、クライアント上の入力フィールドの自動完成に使用されるいくつかのメソッドを持つWebサーバーがあります。メソッドは文字列を受け取り、regexpを使用してmongodbコレクションの特定のプロパティをスキャンします。MongoDBでのregexによる検索結果の並べ替え
かなり一般的なもの、そうですか?しかし、ここでは問題があります。これらのメソッドは、検索された文字列が結果文字列の先頭にどれだけ近いかに基づいて結果をソートする必要があります。私が国を探して「ru」とタイプしたように、「ロシア」は「ペルー」の前に来るべきです。
複数の検索を実行せずにこのような結果をどのように並べ替えることができないのか分かりません。今、私は、私はモンゴはデフォルトでソートこの種の操作を行うことができないことを、知っているが、多分それを行うには良い方法があります。このような何か
const limit = 20;
const resultsStartOfLine = db.countries.find({name: /^ru/i})
.limit(limit)
.toArray();
const resultsRest = db.countries.find({
name: /ru/i,
_id: {$nin: _.map(resultsStartOfLine, '_id')}
})
.limit(limit - resultsStartOfLine.length)
.toArray();
と考えることができますか?