Skip to main content

Command Palette

Search for a command to run...

decimal128 vs double in MongoDB

Choosing the Right Calculator for Your MongoDB Numbers Game

Updated
2 min read
decimal128 vs double in MongoDB

When it comes to storing numbers in MongoDB, you've got two options: Decimal128 and Double. Think of Decimal128 as a ruler for precise measurements and Double as a tape measure for general measurements.

Let's say you're building a stock trading app. You'll want to use Decimal128 for storing the exact price of a stock to ensure accuracy for your users. But for storing the temperature in Celsius in a weather application, Double will be a better option as it's more efficient and doesn't require that level of precision.

Keep in mind, Decimal128 is not a native MongoDB data type, so you'll need to use a library like 'mongodb-decimal' to work with it. Double, however, is native to MongoDB, so no additional libraries are needed.

In short, Decimal128 is like a fancy calculator for precise calculations and Double is like a regular calculator for storing a large range of numbers with less precision. Choose the one that best fits your needs and have fun!

Usage:

Here are a few examples of how to use the Decimal128 data type in MongoDB:

Using the mongodb-decimal library:
You can use the mongodb-decimal library to work with Decimal128 data type in MongoDB.

First, you need to install the library by running the following command:

npm install mongodb-decimal

Then you can use it in your code like this:

const Decimal128 = require('mongodb-decimal');
const decimalValue = new Decimal128("123.45");
// insert into a collection
await collection.insertOne({ value: decimalValue });

// find and update
await collection.updateOne({}, { $set: { value: new Decimal128("999.99") } });

Using the Decimal128 constructor:

const decimalValue = new Decimal128("123.45");

// insert into a collection
await collection.insertOne({ value: decimalValue });

// find and update
await collection.updateOne({}, { $set: { value: new Decimal128("999.99") } });
Using the Decimal128.fromString() method:
Copy code
const decimalValue = Decimal128.fromString("123.45");

// insert into a collection
await collection.insertOne({ value: decimalValue });

// find and update
await collection.updateOne({}, { $set: { value: Decimal128.fromString("999.99") } });

In all the examples above, the decimalValue variable holds the Decimal128 value, which can be inserted or updated into a MongoDB collection.

Note that these are just examples and you should make sure to handle any errors and also use the appropriate MongoDB driver version to use Decimal128.

1.8K views

More from this blog

K

kn8's tech blog

9 posts