Calculating Field Sum in MongoDB Collections
Connecting to MongoDB
Establish database connnection using the Node.js driver:
const { MongoClient } = require('mongodb');
const databaseUrl = 'mongodb://localhost:27017';
const client = new MongoClient(databaseUrl);
async function connectToDatabase() {
try {
await client.connect();
console.log('Database connection established');
return client.db('sample_database');
} catch (connectionError) {
console.error('Connection failed:', connectionError);
throw connectionError;
}
}
Selecting Target Collection
Access the specific collection for querying:
const targetCollection = database.collection('sales_data');
Aggregation Pipeline for Sum Calculation
Execute agrgegation pipeline to compute field summation:
async function calculateFieldSum(collection, fieldName) {
try {
const pipeline = [
{
$group: {
_id: null,
aggregateSum: { $sum: `$${fieldName}` }
}
}
];
const aggregationResult = await collection.aggregate(pipeline).toArray();
return aggregationResult[0]?.aggregateSum || 0;
} catch (aggregationError) {
console.error('Aggregation operation failed:', aggregationError);
throw aggregationError;
}
}
// Usage example
connectToDatabase()
.then(db => {
const dataCollection = db.collection('transactions');
return calculateFieldSum(dataCollection, 'amount');
})
.then(sumResult => {
console.log(`Total sum: ${sumResult}`);
})
.catch(error => {
console.error('Operation error:', error);
});