code-docs/plugins/connections/mongodb.md
MongoDB connection for Lowdefy. Full support for CRUD operations and aggregation pipelines.
Uses the MongoDB Node.js Driver (v6.3.0).
| Type | Purpose |
|---|---|
MongoDBCollection | Connect to a MongoDB collection |
connections:
- id: mongodb
type: MongoDBCollection
properties:
databaseUri:
_secret: MONGODB_URI
databaseName: myapp # Optional if included in URI
collection: users
read: true
write: true
| Property | Type | Required | Description |
|---|---|---|---|
databaseUri | string | Yes | MongoDB connection URI |
databaseName | string | No | Database name (can be in URI) |
collection | string | Yes | Collection name |
read | boolean | No | Allow read operations (default: true) |
write | boolean | No | Allow write operations (default: false) |
Find multiple documents:
requests:
- id: getUsers
type: MongoDBFind
connectionId: mongodb
properties:
query:
active: true
options:
sort:
createdAt: -1
limit: 100
projection:
password: 0
Find single document:
requests:
- id: getUser
type: MongoDBFindOne
connectionId: mongodb
properties:
query:
_id:
_state: userId
Insert single document:
requests:
- id: createUser
type: MongoDBInsertOne
connectionId: mongodb
properties:
doc:
name:
_state: name
email:
_state: email
createdAt:
_date: now
Insert multiple documents:
requests:
- id: createUsers
type: MongoDBInsertMany
connectionId: mongodb
properties:
docs:
_state: usersToCreate
Update single document:
requests:
- id: updateUser
type: MongoDBUpdateOne
connectionId: mongodb
properties:
filter:
_id:
_state: userId
update:
$set:
name:
_state: name
updatedAt:
_date: now
Update multiple documents:
requests:
- id: deactivateOldUsers
type: MongoDBUpdateMany
connectionId: mongodb
properties:
filter:
lastLogin:
$lt:
_date:
- now
- subtract:
- 1
- year
update:
$set:
active: false
Delete single document:
requests:
- id: deleteUser
type: MongoDBDeleteOne
connectionId: mongodb
properties:
filter:
_id:
_state: userId
Delete multiple documents:
requests:
- id: cleanupOld
type: MongoDBDeleteMany
connectionId: mongodb
properties:
filter:
deleted: true
Run aggregation pipeline:
requests:
- id: getUserStats
type: MongoDBAggregation
connectionId: mongodb
properties:
pipeline:
- $match:
active: true
- $group:
_id: $department
count:
$sum: 1
avgSalary:
$avg: $salary
- $sort:
count: -1
Multiple operations in one request:
requests:
- id: bulkUpdate
type: MongoDBBulkWrite
connectionId: mongodb
properties:
operations:
- insertOne:
document:
name: New User
- updateOne:
filter:
_id: user123
update:
$set:
status: active
Use operators in queries:
properties:
query:
$or:
- name:
$regex:
_state: searchTerm
$options: i
- email:
$regex:
_state: searchTerm
$options: i
Filter by authenticated user:
properties:
query:
userId:
_user: id
MongoDB connections are pooled automatically. The connection string is used as the pool key.
String IDs are automatically converted to ObjectIds when:
_idJavaScript Date objects are preserved through serialization.