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

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

MongoDBで文字列をint型に変換するには

MongoDBで文字列として保存された数値データをint型(整数値)に変換するには、parseInt()を使用します。この記事では、実際のコード例を通して、変換の手順をわかりやすく解説します。

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

まず、insertOne()メソッドを使って、文字列型の「Price」フィールドを持つドキュメントを格納するコレクションを作成します。

> db.demo369.insertOne({"Price":"1000000"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e57e2e32ae06a1609a00aed")
}
> db.demo369.insertOne({"Price":"1747864"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e57e2e92ae06a1609a00aee")
}
> db.demo369.insertOne({"Price":"19548575"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e57e2ee2ae06a1609a00aef")
}

2. 現在のドキュメントを確認する

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

> db.demo369.find();

実行すると、次のような出力が得られます。Priceフィールドが引用符付きの文字列型として保存されていることが確認できます。

{ "_id" : ObjectId("5e57e2e32ae06a1609a00aed"), "Price" : "1000000" }
{ "_id" : ObjectId("5e57e2e92ae06a1609a00aee"), "Price" : "1747864" }
{ "_id" : ObjectId("5e57e2ee2ae06a1609a00aef"), "Price" : "19548575" }

3. 文字列をint型に変換するクエリ

以下が、文字列をint型に変換するためのクエリです。forEach()ですべてのドキュメントを順番に処理し、parseInt()で変換した値をsave()メソッドで保存しています。

> db.demo369.find().forEach( function (d) {
...    d.Price= parseInt(d.Price);
...    db.demo369.save(d);
... });

4. 変換結果の確認

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

> db.demo369.find();

実行すると、次のように出力されます。

{ "_id" : ObjectId("5e57e2e32ae06a1609a00aed"), "Price" : 1000000 }
{ "_id" : ObjectId("5e57e2e92ae06a1609a00aee"), "Price" : 1747864 }
{ "_id" : ObjectId("5e57e2ee2ae06a1609a00aef"), "Price" : 19548575 }

このように、Priceフィールドの値から引用符が消え、整数値(int型)へ正しく変換されたことが確認できます。

補足:知っておくと便利なポイント

  • MongoDB 4.2以降では、updateMany()メソッドと集計パイプラインを組み合わせることで、サーバー側で効率的に一括変換することも可能です。
  • JavaScriptのparseInt()は32ビット整数に変換されるため、非常に大きな数値を扱う場合はNumberLong()の使用を検討してください。
  1. C++でint型をstring型に変換する方法を解説

    整数(int)を文字列(string)に変換したい場合、いくつかの方法があります。まずはC言語由来のitoa関数を使う方法から見ていきましょう。 itoa関数を使う方法 itoaは「integer to ASCII」の略で、整数値を文字列に変換するC言語の関数です。以下のように使用します。 例 #include<iostream> int main() { int a = 10; char *intStr = itoa(a); string str = string(intStr); cout << str; } 出力 このコードを実行す

  2. C#で文字列をint型(整数)に変換する方法を解説

    C#では、数値として表現された文字列をint型(整数)に変換する場面がよくあります。例えば、ユーザー入力やファイルから読み込んだデータを計算に使いたい場合などです。本記事では、Int32.Parse()メソッドを使った基本的な変換方法を解説します。Int32.Parse()メソッドとはInt32.Parse()は、数字の文字列を32ビット符号付き整数(int型)に変換するためのメソッドです。変換元の文字列が有効な数値形式でない場合、FormatExceptionがスローされる点に注意してください。変換の手順まず、変換対象となる文字列を用意します。string str = 9999;次に、Int