$sign (符号)
最終更新:2026-10-09
$sign (符号)
$sign は数値の符号を返します。正は 1、負は -1、0 は 0 です。カテゴリ集計、上昇・下降の方向判定、データのバケット化(価格変動を上昇・下降・横ばいにマッピングするなど)に使われます。null または欠落した引数は null を返し、NaN 入力は NaN を返します。$abs と組み合わせると値の方向と大きさの両方を得られ、条件式で比較をチェーンするより簡潔で、後段のグループ別集計にも便利です。
| カテゴリ | 数学 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $sign: <numeric-expression> }
⚙️ パラメータ
| 数値 | 数値、または数値に解決される式。 |
|---|
戻り値:1、-1、または 0。入力が NaN の場合は NaN、null または欠落している場合は null
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $sign: 価格変動の方向
db.stocks.aggregate([
{ $project: {
trend: { $sign: '$change' }
} }
])
出力:
{ '_id': 1, 'trend': 1 }
{ '_id': 2, 'trend': -1 }
📌 注意事項
- 0 は 0 を返す。符号付き 0 も含む
- NaN 入力は NaN を返す
- $abs と組み合わせて方向と大きさを得る
🏷️ 関連タグ
💡 関連ケース
さらなる実践ケースを近日公開予定。
📚 関連チュートリアル
❓ よくある質問
Q$sign はどの値を返しますか?
A3 種類です。正は 1、負は -1、0 は 0 です。
Q$sign は 0 に何を返しますか?
A0 を返します。符号付きの 0 もゼロとして扱われます。
Q$sign で上昇と下降を判定できますか?
Aはい。価格差を $sign に渡します。1 は上昇、-1 は下降、0 は横ばいです。