Database
JWeb provides a fluent DSL for MongoDB operations with schemas, queries, updates, and deletes.
Connection
import static com.osmig.Jweb.framework.db.mongo.Mongo.*;
// Connect with URI and database name
Mongo.connect("mongodb://localhost:27017", "mydb");
// Or use environment variables (MONGO_URI, MONGO_DB)
Mongo.connect();Documents
Use Doc for dynamic document creation and field access.
import static com.osmig.Jweb.framework.db.mongo.Doc.*;
// Create a document
Doc user = Doc.of("users")
.set("name", "John")
.set("email", "john@example.com")
.set("age", 25);
// Save to database
Mongo.save(user);
// Access fields
String name = user.getString("name");
int age = user.getInt("age");Queries
Fluent query builder with filters, sorting, and pagination.
// Find by ID
Doc user = Mongo.findById("users", id);
// Find with filters
List<Doc> users = Mongo.find("users")
.where("age").gte(18)
.where("status", "active")
.orderBy("name")
.limit(10)
.toList();
// Find first match
Doc admin = Mongo.find("users")
.where("role", "admin")
.first();Updates
// Update fields
Mongo.update("users")
.where("id", id)
.set("name", "Jane")
.set("age", 26)
.execute();
// Increment a field
Mongo.update("users")
.where("id", visitorId)
.inc("visitCount", 1)
.execute();Deletes
// Delete by ID
Mongo.delete("users")
.where("id", userId)
.execute();
// Delete multiple
Mongo.delete("users")
.where("status", "inactive")
.executeAll();Schema Definition
Define schemas for validation and automatic timestamps.
import static com.osmig.Jweb.framework.db.mongo.Schema.*;
Schema.collection("users")
.id("id")
.string("name").required()
.string("email").required().unique()
.integer("age").min(0).max(150)
.list("roles")
.timestamps()
.register();Schemas add createdAt/updatedAt automatically when timestamps() is called.