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.
The following example queries all the "post" custom type documents with the "switch" field equal to true by using the at predicate. It also sorts the results by their title.
// To retrieve the API object check how to query the API
api.query(
Prismic.Predicates.at('my.post.switch', true),
{ orderings : '[my.post.title]' }
).then(function(response) {
// response is the response object, response.results holds the documents
});
This example shows how to query all the products with the price field (Number) less than 100.
// To retrieve the API object check how to query the API
api.query(
Prismic.Predicates.lt('my.product.price', 100)
).then(function(response) {
// response is the response object, response.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”.
// To retrieve the API object check how to query the API
api.query(
Prismic.Predicates.any('my.employee.job-title', ['Developer', 'Designer'])
).then(function(response) {
// response is the response object, response.results holds the documents
});
To query by a particular document link 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 Document Link) equal to the category with a document ID of "WNje3SUAAEGBu8bc".
// To retrieve the API object check how to query the API
api.query([
Prismic.Predicates.at('document.type', 'blog_post'),
Prismic.Predicates.at('my.blog_post.category_link', 'WNje3SUAAEGBu8bc')
]).then(function(response) {
// response is the response object, response.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.
// To retrieve the API object check how to query the API
api.query(
Prismic.Predicates.at('my.book.author', 'John Doe'),
{ orderings : '[my.book.title]' }
).then(function(response) {
// response is the response object, response.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”.
// To retrieve the API object check how to query the API
api.query(
Prismic.Predicates.at('my.book.author-info.name', 'John Doe'),
{ orderings : '[my.book.title]' }
).then(function(response) {
// response is the response object, response.results holds the documents
});