[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-01-19 UTC."],[],[],null,["# QueryConstraint class\n\nA `QueryConstraint` is used to narrow the set of documents returned by a Database query. `QueryConstraint`s are created by invoking [endAt()](./database.md#endat_51c2c8b), [endBefore()](./database.md#endbefore_51c2c8b), [startAt()](./database.md#startat_51c2c8b), [startAfter()](./database.md#startafter_51c2c8b), [limitToFirst()](./database.md#limittofirst_ec46c78), [limitToLast()](./database.md#limittolast_ec46c78), [orderByChild()](./database.md#orderbychild_fe1f8e4), [orderByChild()](./database.md#orderbychild_fe1f8e4), [orderByKey()](./database.md#orderbykey) , [orderByPriority()](./database.md#orderbypriority) , [orderByValue()](./database.md#orderbyvalue) or [equalTo()](./database.md#equalto_51c2c8b) and can then be passed to [query()](./database.md#query_870e07a) to create a new query instance that also contains this `QueryConstraint`.\n\n**Signature:** \n\n export declare abstract class QueryConstraint \n\nProperties\n----------\n\n| Property | Modifiers | Type | Description |\n|-----------------------------------------------------------|-----------|----------------------------------------------------------|------------------------------------|\n| [type](./database.queryconstraint.md#queryconstrainttype) | | [QueryConstraintType](./database.md#queryconstrainttype) | The type of this query constraints |\n\nQueryConstraint.type\n--------------------\n\nThe type of this query constraints\n\n**Signature:** \n\n abstract readonly type: QueryConstraintType;"]]