MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBで数値文字列を数値型に変換するクエリの書き方

MongoDBで数値文字列を数値型に変換する方法

MongoDBでは、文字列として保存された数値を数値型に変換する際にparseInt()関数を使用します。本記事では、実際にサンプルコレクションを作成しながら、変換の手順を段階的に解説します。

1. サンプルコレクションの作成

まず、ドキュメントを挿入してコレクションを作成します。ここでは「value」フィールドに文字列形式の数値を格納したドキュメントを2件登録します。

> db.demo208.insertOne( { "value":"50"} );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3d92d803d395bdc21346f6")
}
> db.demo208.insertOne( { "value":"2350"} );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e3d92dd03d395bdc21346f7")
}

2. 登録されたドキュメントの確認

find()メソッドを使って、コレクション内のすべてのドキュメントを表示してみましょう。

> db.demo208.find();

実行すると、次のような出力が得られます。「value」フィールドがダブルクォートで囲まれた文字列として保存されていることが確認できます。

{ "_id" : ObjectId("5e3d92d803d395bdc21346f6"), "value" : "50" }
{ "_id" : ObjectId("5e3d92dd03d395bdc21346f7"), "value" : "2350" }

3. 数値文字列を数値に変換するクエリ

以下は、forEach()ループ内でparseInt()を適用し、各ドキュメントの「value」フィールドを数値型に変換して保存するクエリです。

> db.demo208.find().forEach( function (doc) {
...   doc.value = parseInt(doc.value);
...   db.demo208.save(doc);
...});

4. 変換結果の確認

再度find()メソッドを実行して、変換後のドキュメントを確認します。

> db.demo208.find();

出力を見ると、「value」フィールドからダブルクォートが消え、数値として表示されています。これにより、正しく数値型へ変換されたことがわかります。

{ "_id" : ObjectId("5e3d92d803d395bdc21346f6"), "value" : 50 }
{ "_id" : ObjectId("5e3d92dd03d395bdc21346f7"), "value" : 2350 }

このように、find()で取得したドキュメントに対してparseInt()で変換処理を行い、save()で更新するだけで、文字列型の数値データを簡単に数値型へ移行できます。なお、大量のドキュメントを扱う場合はパフォーマンスを考慮し、集計パイプラインの$toInt演算子や一括更新操作の活用も検討するとよいでしょう。

  1. C言語で浮動小数点数を文字列に変換する方法

    この記事では、C言語において数値(整数・浮動小数点数など、あらゆる数値型データ)を文字列に変換する方法を解説します。考え方は非常にシンプルです。ここでは sprintf() 関数を使用します。sprintf() は、値や文字列をコンソールではなく「文字列」に対して出力するための関数です。これが printf() との唯一の違いです。第一引数には、変換結果を保存したい文字列バッファ(char型配列)を指定します。入力と出力のイメージ入力: ユーザーが数値(例: 42.26)を入力 出力: プログラムはその数値に対応する文字列 42.26 を返すアルゴリズムステップ1 − ユーザーから数値を受け取

  2. C言語で数値を文字列に変換するプログラムの書き方

    この記事では、C言語において数値(整数型・浮動小数点型など、あらゆる数値型データ)を文字列に変換する方法を解説します。変換のロジックは非常にシンプルです。ここでは sprintf() 関数を使用します。この関数は、値や文字列をコンソールではなく、文字列バッファに出力(格納)するために使われます。printf() との唯一の違いはこの点です。sprintf() の第1引数には、変換結果を保存したい文字列バッファを指定します。入力: ユーザーが数値(例:42.26)を入力する 出力: プログラムはその数値に対応する文字列(例:42.26)を返すアルゴリズムステップ1: ユーザーから数値を入力として