ステータス 'A'を持つすべてのユーザーが最初に来て、その後 'B'などとなるように、すべてのユーザーをステータスに応じて並べ替えます。 MongoDBではこれと同等のものは何でしょうか?MongoDBで値ベースのOrder Byを実行する方法は?
6
A
答えて
0
は、ASCをソートする - >ステータス:1
db.users.find().sort({ status: 1 })
はDESCをソートする - >ステータス:-1
db.users.find().sort({ status: -1 })
5
あなたは順番に$project
に各値の "重み" が必要MongoDB用語では、それは.aggregate()
メソッドを意味します:
db.users.aggregate([
{ "$project": {
"status": 1,
"a_field": 1,
"another_field": 1,
"pretty_much_every_field": 1,
"weight": {
"$cond": [
{ "$eq": [ "$status", "A" ] },
10,
{ "$cond": [
{ "$eq": [ "$status", "B" ] },
8,
{ "$cond": [
{ "$eq": [ "$status", "C" ] },
6,
{ "$cond": [
{ "$eq": [ "$status", "D" ] },
4,
0
]}
]}
]}
]
}
}},
{ "$sort": { "weight": -1 } }
])
ternary$cond
のネストされた使用では、 "status"の各項目は、引数の順序で順序付けられた "weight"値とみなされます。
これは、$sort
に供給されます。投影値( "weight")は、重み付きマッチングによってスコアリングされた結果をソートするために使用されます。
このように、ソートされた結果の最初に現れる「ステータス」の一致の順番が優先されます。
関連する問題
- 1. mongodbのMySQL order by findOne()
- 2. MongoDB order by "number"昇順
- 3. mongodbでgroup byを実行する方法
- 4. djangoでORDER BYとGROUP BYを設定する方法は?
- 5. MySQL ORDER BY + LIMIT + OFFSETステートメント:ファセットをオフセットし、ORDER BYでソートする方法
- 6. WP_Query order by usermeta値
- 7. MySQLで 'ORDER BY'の後に 'GROUPT BY'する方法
- 8. KRLのハッシュで「ORDER BY ... LIMIT ...」スタイルのクエリを実行する
- 9. Oracleでクエリを実行するときのORDER BYのパフォーマンス
- 10. Order By By Union値とNULL値SQL Server
- 11. over関数でpartition byとorder byを使う方法は?
- 12. SQL ORDER BY発行
- 13. ORDER BY句とGROUP BY句の両方のインデックスを使用する方法は?
- 14. Javaでソートの「ORDER BY」スタイルを取得する方法は?
- 15. ORDER BY列とRAND()の両方を選択する方法は?
- 16. MySQL:別のフィールドORDER BYで行を取得するフィールドをGROUP BYする方法は?
- 17. 休止状態マッピングでorder-byを行う方法
- 18. 'order by'で条件を追加する方法は?
- 19. mysqlで 'ORDER BY'を重み付けする方法は?
- 20. Postgres UPDATEをORDER BYで更新する方法は?
- 21. ORDER BYデフォルトINTEGER値0
- 22. OVERとORDER BYの使用方法
- 23. MySQL:この単純なGROUP BY + ORDER BYクエリを最適化する方法は?
- 24. このMSDNの例でOrder Byを使用する方法
- 25. SELECT、COUNT、GROUP BY、ORDER BYで
- 26. 複数のisdescendantnodeでorder byを使用する方法
- 27. Mysql order by byエイリアス
- 28. AngularJS by order by function
- 29. ORDER BY
- 30. Linq-To-SQLを使用して同じクエリでTOP、ORDER BY、およびDISTINCTを実行する方法は?
これは単純な並べ替えです。どのように私は値に従ってソートするでしょう。したがって、 'C'、 'A'、 'B'、 'D'のステータス - 'C'のステータスを持つユーザーが返されます。 –
ステータス(必要に応じて並べ替えた)の配列をパラメータとして送信しますか? – makcs