MongoDB Basics
Connection & Database Operations
# Connect to MongoDB
mongosh "mongodb://localhost:27017"
# Show databases
show dbs
# Use/create database
use mydb
# Show collections
show collections
# Database stats
db.stats()
Basic CRUD Operations
Insert Documents
// Insert single document
db.users.insertOne({
name: "John Doe",
email: "john@example.com",
age: 30
});
// Insert multiple documents
db.users.insertMany([
{ name: "Alice", email: "alice@example.com", age: 25 },
{ name: "Bob", email: "bob@example.com", age: 35 }
]);
Find Documents
// Find all documents
db.users.find();
// Find with condition
db.users.find({ age: { $gte: 30 } });
// Find one document
db.users.findOne({ email: "john@example.com" });
// Pretty print
db.users.find().pretty();
// Limit results
db.users.find().limit(5);
// Sort results
db.users.find().sort({ age: -1 });
Update Documents
// Update single document
db.users.updateOne(
{ email: "john@example.com" },
{ $set: { age: 31 } }
);
// Update multiple documents
db.users.updateMany(
{ age: { $lt: 30 } },
{ $set: { status: "young" } }
);
// Upsert (update or insert)
db.users.updateOne(
{ email: "new@example.com" },
{ $set: { name: "New User", age: 25 } },
{ upsert: true }
);
Delete Documents
// Delete single document
db.users.deleteOne({ email: "john@example.com" });
// Delete multiple documents
db.users.deleteMany({ age: { $lt: 18 } });
// Drop collection
db.users.drop();
Document Structure
// Flexible document example
{
_id: ObjectId("..."),
name: "John Doe",
email: "john@example.com",
profile: {
age: 30,
location: "San Francisco",
interests: ["coding", "music"]
},
createdAt: new Date(),
isActive: true
}
Common Data Types
{
_id: ObjectId("..."), // ObjectId
string: "text", // String
number: 42, // Number (Int32/Int64/Double)
decimal: NumberDecimal("99.99"), // Decimal128
boolean: true, // Boolean
date: new Date(), // Date
array: [1, 2, 3], // Array
object: { key: "value" }, // Object
null: null, // Null
regex: /pattern/i // Regular Expression
}