plain equality | { status: "done" }
| json_extract(_doc, '$.status') = ?
|
q.eq | { priority: q.eq("high") }
| json_extract(_doc, '$.priority') = ?
|
q.ne | { status: q.ne("archived") }
| json_extract(_doc, '$.status') != ?
|
q.oneOf | { status: q.oneOf(["done", "reviewing"]) }
| json_extract(_doc, '$.status') IN (?, ?)
|
q.notOneOf | { status: q.notOneOf(["archived", "deleted"]) }
| json_extract(_doc, '$.status') NOT IN (?, ?)
|
q.gt | { score: q.gt(80) }
| json_extract(_doc, '$.score') > ?
|
q.gte | { progress: q.gte(50) }
| json_extract(_doc, '$.progress') >= ?
|
q.lt | { retryCount: q.lt(3) }
| json_extract(_doc, '$.retryCount') < ?
|
q.lte | { dueAt: q.lte(to) }
| json_extract(_doc, '$.dueAt') <= ?
|
q.between | { updatedAt: q.between(from, to) }
| json_extract(_doc, '$.updatedAt') BETWEEN ? AND ?
|
q.exists | q.exists("assignee")
| json_type(_doc, '$.assignee') IS NOT NULL
|
q.missing | q.missing("deletedAt")
| json_type(_doc, '$.deletedAt') IS NULL
|
q.empty | q.empty("removedAt")
| json_extract(_doc, '$.removedAt') IS NULL OR json_extract(_doc, '$.removedAt') = ''
|
q.has | { tags: q.has("urgent") }
| EXISTS (SELECT 1 FROM json_each(json_extract(_doc, '$.tags')) WHERE value = ?)
|
q.contains | { title: q.contains("release") }
| json_extract(_doc, '$.title') LIKE ?
|
q.all | q.all({ project }, { status: "active" })
| (json_extract(_doc, '$.project') = ?) AND (json_extract(_doc, '$.status') = ?)
|
q.any | q.any({ status: "done" }, { status: "reviewing" })
| (json_extract(_doc, '$.status') = ?) OR (json_extract(_doc, '$.status') = ?)
|
q.not | q.not({ status: "archived" })
| NOT (json_extract(_doc, '$.status') = ?)
|
q.when true | q.when(userIds.length, { user: q.oneOf(userIds) })
| json_extract(_doc, '$.user') IN (?, ...)
|
q.when false | q.when(false, { user })
| 1 = 1
|
nested path | { "profile.city": "Seoul" }
| json_extract(_doc, '$.profile.city') = ?
|
array field | { watchers: q.has(userId) }
| EXISTS (SELECT 1 FROM json_each(json_extract(_doc, '$.watchers')) WHERE value = ?)
|
q.raw | q.raw("json_extract(_doc, '$.score') > ?", [minScore])
| (json_extract(_doc, '$.score') > ?)
|