Query by a Field
There are a number of fields that you can query content by. Here are examples of how to query by the Number, Key Text, Document Link, and Select fields.
Before Reading
This page assumes that you've already imported the Prismic library and retrieved the Client object. If you want to learn how to do this, then refer to the How to Query the API page.
This example shows how to query all the "product" documents whose "price" field (Number) is less than 100 by using the lt predicate.
client.query(
Prismic.Predicates.lt('my.product.price', 100)
).then(res => {
// res is the response object, res.results holds the documents
})
You can find more query predicates for Number fields on the Query Predicate Reference page.
This queries all the "employee" custom type documents with the "job_title" field (Key Text) equal to either "Developer" or "Designer" by using the any predicate.
client.query(
Prismic.Predicates.any('my.employee.job_title', ['Developer', 'Designer'])
).then(res => {
// res is the response object, res.results holds the documents
})
To query by a particular Content Relationship (AKA a Document Link field) value, you must use the ID of the document you are looking for.
The following example queries all the "blog_post" custom type documents with the "category_link" field (a Content Relationship/Document Link field) equal to the category with a document ID of "WNje3SUAAEGBu8bc".
client.query([
Prismic.Predicates.at('document.type', 'blog_post'),
Prismic.Predicates.at('my.blog_post.category_link', 'WNje3SUAAEGBu8bc')
]).then(res => {
// res is the response object, res.results holds the documents
})
The following example shows a query for all the "book" custom type documents with the "author" field (Select) equal to "John Doe". It also sorts the results by their title.
client.query(
Prismic.Predicates.at('my.book.author', 'John Doe'),
{ orderings : '[my.book.title]' }
).then(res => {
// res is the response object, res.results holds the documents
})
It is also possible to query by a field inside of a group. The following queries all the "book" custom type documents with the "name" field (Select) equal to "John Doe". In this case the "name" field is in a group field named "author_info".
client.query(
Prismic.Predicates.at('my.book.author_info.name', 'John Doe'),
{ orderings : '[my.book.title]' }
).then(res => {
// res is the response object, res.results holds the documents
})
The following example queries all the "post" custom type documents with the "switch" Boolean field equal to true by using the at predicate. It also sorts the results by their title.
client.query(
Prismic.Predicates.at('my.post.switch', true),
{ orderings : '[my.post.title]' }
).then(res => {
// response is the response object, response.results holds the documents
});