mirror of
https://github.com/ent/ent.git
synced 2026-05-22 09:31:45 +03:00
1.3 KiB
Executable File
1.3 KiB
Executable File
id, title
| id | title |
|---|---|
| predicates | Predicates |
Field Predicates
- Bool:
- =, !=
- Numeric:
- =, !=, >, <, >=, <=,
- IN, NOT IN
- Time:
- =, !=, >, <, >=, <=
- IN, NOT IN
- String:
- =, !=, >, <, >=, <=
- IN, NOT IN
- Contains, HasPrefix, HasSuffix
- ContainsFold, EqualFold (SQL specific)
- Optional fields:
- IsNil, NotNil
Edge Predicates
-
HasEdge. For example, for edge named
ownerof typePet, use:client.Pet. Query(). Where(pet.HasOwner()). All(ctx) -
HasEdgeWith. Add list of predicates for edge predicate.
client.Pet. Query(). Where(pet.HasOwnerWith(user.Name("a8m"))). All(ctx)
Negation (NOT)
client.Pet.
Query().
Where(pet.Not(pet.NameHasPrefix("Ari"))).
All(ctx)
Disjunction (OR)
client.Pet.
Query().
Where(
pet.Or(
pet.HasOwner(),
pet.Not(pet.HasFriends()),
)
).
All(ctx)
Conjunction (AND)
client.Pet.
Query().
Where(
pet.And(
pet.HasOwner(),
pet.Not(pet.HasFriends()),
)
).
All(ctx)
Custom Predicates
Custom predicates can be useful if you want to write your own dialect-specific logic.
pets := client.Pet.
Query().
Where(predicate.Pet(func(s *sql.Selector) {
s.Where(sql.InInts(pet.OwnerColumn, 1, 2, 3))
})).
AllX(ctx)