Query by a Field in Javascript

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.

Number Field

This example shows how to query all the products with the price field (Number) less than 100 by using the lt predicate.

Copy
// To retrieve the API object check how to query the API
api.query(
    Prismic.Predicates.lt('my.product.price', 100)
).then(function(content) {
    // content is the response object, content.results holds the documents
});

You can find more query predicates for Number fields on the Query Predicate Reference page.

Key Text Field

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.

Copy
// To retrieve the API object check how to query the API
api.query(
    Prismic.Predicates.any('my.employee.job-title', ['Developer', 'Designer'])
).then(function(content) {
    // content is the response object, content.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".

Copy
// 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(content) {
  // content is the response object, content.results holds the documents
});

Select Field

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.

Copy
// 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(content) {
    // content is the response object, content.results holds the documents
});

A Select Field inside of a Group

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".

Copy
// 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(content) {
    // content is the response object, content.results holds the documents
});