私はすべての可能な方法でこれを実行しようとしましたが、すべてのリソースを検索しましたが、些細な問題に見えるものを見つけることができませんでした。MongoDB集約で文字列を数値にキャストする
私は、他の場所からインポートされた巨大なコレクションを持っています。field
は数値型ではなく文字列です。 field
でソートしようとすると、自然に数字ではなく文字列ソートが行われます。 $sum
または$avg
を行うと、それぞれ0
およびnull
が得られます。
必然的に私の文字列フィールドは数値に変換されますが、このような機能は存在しないようです。私は$add: ['field', 0]
または$multiply: ['field', 1]
のようなトリックを試してみましたが、算術演算子は明らかに数値を求めています。自動変換は行われないようです。私はこれを$group
と$project
の段階で無駄に試しました。
その他すべてが失敗した場合は、field
に対応する新しい数値フィールドを挿入してコレクションを更新する必要がありますが、コレクションが外部ソースから頻繁に完全に再インポートされるため、これは推奨されていません。
の可能な重複[MongoDBの中の数値に文字列を変換する方法(https://stackoverflow.com/questions/29487351/how-to-convert-string-to-numerical-values-in-mongodb ) – dnickless
その投稿(https://stackoverflow.com/questions/29487351/how-to-convert-string-to-numerical-values-in-mongodb)は実際に値を変換する角度です。 –