Filtering
Boolean Filters
Filter operators for boolean fields
Boolean Filters
Filter operators available for boolean fields.
Operators
| Operator | Description |
|---|---|
equals | Exact match |
not | Negation |
equals
// Direct value
where: { active: true }
where: { published: false }
// Explicit equals
where: { active: { equals: true } }not
// Negation
where: { active: { not: true } } // Same as active: false
where: { deleted: { not: false } } // Same as deleted: trueNullable Booleans
For nullable boolean fields:
// Only true
where: { verified: true }
// Only false (not null)
where: { verified: false }
// Only null
where: { verified: null }
// Not null (true or false)
where: { verified: { not: null } }Combined Conditions
// Active and not deleted
where: {
active: true,
deleted: false,
}
// Published or featured
where: {
OR: [
{ published: true },
{ featured: true },
],
}Examples
Active Users
async function getActiveUsers() {
return client.user.findMany({
where: { active: true },
});
}Published Posts
async function getPublishedPosts() {
return client.post.findMany({
where: {
published: true,
deleted: false,
},
orderBy: { publishedAt: "desc" },
});
}Unverified Emails
async function getUnverifiedUsers() {
return client.user.findMany({
where: { emailVerified: false },
});
}Feature Flags
async function getUsersWithBeta() {
return client.user.findMany({
where: {
settings: {
path: ["betaFeatures"],
equals: true,
},
},
});
}Soft Delete Filter
// Get only non-deleted
async function getActiveItems() {
return client.item.findMany({
where: { deleted: false },
});
}
// Get only deleted
async function getDeletedItems() {
return client.item.findMany({
where: { deleted: true },
});
}
// Get all (including deleted)
async function getAllItems() {
return client.item.findMany();
}Status Combination
async function getReviewablePosts() {
return client.post.findMany({
where: {
published: false,
submitted: true,
rejected: false,
},
});
}