を文字列値からソート順を提供しますのは、私は次のようになり、文書でコレクションを持っているとしましょうmongdb集約に
{
_id: <someMongoId>,
status: 'start'
otherImportantData: 'Important!'
}
...とステータスが「スタート」、「ミドル」、または 'することができ終わり'。
ステータスフィールドでこれらのドキュメント(特に集約フレームワーク内)を並べ替える必要がありますが、アルファベット順に並べる必要はありません。私は開始 - >中間 - >終了の順にソートしたいと思う。
私はstatus
フィールドを数字のstatusValue
フィールドに投影する方法を探していましたが(どの文字列にマップするのかを指示するところがあります) 。
私がそれを行うことができるとしましょう。私はstatus
を取ると、そのようにマッピングしたい:
start: 1
middle: 2
end: 3
<anything else>: 0
が、私は集約パイプラインでこのような何かを行うことができます:
{
$sort: { statusValue : 1 }
}
...しかし、私はそれらを取得するかどうかはわかりませんアグリゲーションパイプラインにマップされたステータス。
私はそれを行う方法がない場合、少なくとも私は見て停止することを知っているでしょう。次善の方法は何でしょうか? MongoDBのMap-Reduce機能の使用?
何かのように文書をソートする
$sort
続い文書に余分なフィールドに出力インデックスを維持するための値のリストと$addFields
に検索文字列の位置を突き止めるために '[{" "$ status"; {"statusValue":{"statusValue":1}}}。それ以外は-1になります。 – Veeramそれはそれをしました - 私はそれを受け入れるだろう答えとしてそれを書くように感じる場合! – WillyC
どのように複製されていると思いますか?それは私にこの質問と関係がないように思われます、あなたが提供した答えは全く違っています(しかし私が間違っていれば私を修正してください)。 – WillyC