In MongoDB, you can loop through collections with a cursor using the while loop with hasNext() and next() methods. A cursor is returned by the find() method and allows you to iterate through documents one by one. Syntax var cursor = db.collectionName.find(); while(cursor.hasNext()) { var document = cursor.next(); printjson(document); } Create Sample Data Let us create a collection with student documents ? db.loopThroughCollectionDemo.insertMany([ {"StudentName": "John", "StudentAge": 23}, {"StudentName": "Larry", "StudentAge": 21}, {"StudentName": ... Read More
To remove all documents from a collection except a single document in MongoDB, use deleteMany() or remove() with the $ne operator to exclude documents that match a specific condition. Syntax db.collection.deleteMany({ field: { $ne: value } }); // OR db.collection.remove({ field: { $ne: value } }); Create Sample Data db.removeAllDocumentsExceptOneDemo.insertMany([ {"StudentName": "Larry", "StudentAge": 21}, {"StudentName": "Mike", "StudentAge": 21, "StudentCountryName": "US"}, {"StudentName": "Chris", "StudentAge": 24, "StudentCountryName": "AUS"} ]); { "acknowledged": true, ... Read More
To compare field values in MongoDB, you can use the $where operator for JavaScript-based comparisons or the $expr operator (recommended) for aggregation expression comparisons. Both methods allow you to compare fields within the same document. Syntax // Using $where (JavaScript evaluation) db.collection.find({ $where: "this.field1 > this.field2" }); // Using $expr (Aggregation expressions - recommended) db.collection.find({ $expr: { $gt: ["$field1", "$field2"] } }); Sample Data db.comparingFieldDemo.insertMany([ {"Value1": 30, "Value2": 40}, {"Value1": 60, "Value2": 70}, {"Value1": 160, "Value2": 190}, ... Read More
To find exact array match with values in different order in MongoDB, use the $all operator combined with $size. The $all operator matches arrays containing all specified elements regardless of order, while $size ensures the exact array length. Syntax db.collection.find({ "arrayField": { "$size": exactLength, "$all": [value1, value2, value3] } }); Create Sample Data db.exactMatchArrayDemo.insertMany([ { "StudentName": "David", ... Read More
Yes, you can query on MongoDB indexes with the $or operator. MongoDB can effectively use separate indexes for each condition in the $or query, combining results through an OR stage in the execution plan. Syntax db.collection.find({ $or: [ { field1: value1 }, { field2: value2 } ]}).explain(); Create Sample Indexes First, create indexes on the fields you'll query ? db.indexOrQueryDemo.createIndex({"First": 1}); { "createdCollectionAutomatically": false, "numIndexesBefore": 2, "numIndexesAfter": 3, ... Read More
To retrieve documents whose field values end with a particular character in MongoDB, use the $regex operator with the dollar sign ($) anchor to match the end of the string. Syntax db.collection.find({ fieldName: { $regex: "character$" } }); The $ symbol ensures the pattern matches only at the end of the string. Sample Data Let us create a collection with sample documents ? db.students.insertMany([ { "StudentName": "Adam", "StudentAge": 25, "StudentCountryName": "LAOS" }, { "StudentName": "Sam", "StudentAge": 24, "StudentCountryName": "ANGOLA" ... Read More
To get the first element from an array using MongoDB aggregation, use the $arrayElemAt operator or combine $unwind with $first. The $arrayElemAt method is simpler and more efficient for this task. Syntax db.collection.aggregate([ { $project: { "fieldName": { $arrayElemAt: ["$arrayField", 0] } } } ]); Sample Data db.getFirstElementInArrayDemo.insertMany([ { ... Read More
To reduce MongoDB storage space after deleting a large amount of data, you need to reclaim the freed disk space since MongoDB doesn't automatically release space after deletions. The database continues to use the same amount of disk space even after documents are removed. Syntax db.runCommand({ "compact": "collectionName" }) Or for the entire database: db.repairDatabase() Method 1: Using compact Command (Recommended) The compact command is the modern approach to reclaim space from a specific collection ? db.runCommand({ "compact": "users" }) { "ok" : 1, "bytesFreed" ... Read More
To concatenate strings from two fields into a third field in MongoDB, use the $concat operator within an aggregation pipeline with $project stage. Syntax db.collection.aggregate([ { $project: { "newFieldName": { $concat: [ "$field1", "delimiter", "$field2" ] } } } ]); Sample Data db.concatenateStringsDemo.insertMany([ {"StudentFirstName": "John", "StudentLastName": "Doe"}, {"StudentFirstName": "John", "StudentLastName": "Smith"}, {"StudentFirstName": "Carol", "StudentLastName": "Taylor"}, {"StudentFirstName": "David", "StudentLastName": "Miller"}, {"StudentFirstName": "James", "StudentLastName": "Williams"} ]); { ... Read More
To remove _id from MongoDB query result, you need to set 0 for the _id field in the projection parameter. This excludes the _id field from the returned documents. Syntax db.collectionName.find({}, {_id: 0}); Sample Data Let us create a collection with sample documents ? db.removeIdDemo.insertMany([ {"UserName": "John", "UserAge": 23}, {"UserName": "Mike", "UserAge": 27}, {"UserName": "Sam", "UserAge": 34}, {"UserName": "Carol", "UserAge": 29} ]); { "acknowledged": true, ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Economics & Finance