# IT:AD:Breeze.JS:HowTo:Develop Queries # * [[../|(UP)]] {{indexmenu>.#2|nsort tsort}} We use an *EntityManager* instance to process *Queries*, in order to retrieve data from the remote service, in order to make *entities* that are mergeg into the local cache. ## Process ## The *Query* is built up fluently using terms similar to what you probably already know from [[IT/LINQ/]]. The Predicate takes a small getting used to coming. function getAllTodos(includeArchived) { var archivedPredicate = new breeze.Predicate("IsArchived", "==", false);; var isDonePredicate = new breeze.Predicate("IsDone", "==", true);; var comboPredicate = archivedPredicate.and(isDonePredicate); var query = breeze.EntityQuery .from("Todos") .where("IsArchived", "==", false); .where("IsArchived", op.NotEquals, true) //Or use predicate: .where(archivedPredicate) //Or use combinined predicates: .where(comboPredicate) .skip(3*20) .take(20) .orderBy("CreatedAt") .inlineCount() //cute...returns a count of the items on the server. ; Notice how you built up the `where` clause before hand, as composite predicates using `and` and `or`. You then send it off and process the async results: manager.executeQuery(query) .then(function(data) { products = data.results; // a page of products beginning with 'C' resultsCount = products.length; // 0 <= resultsCount < pageSize inlineCount = data.inlineCount; // count of products beginning with 'C' }); ### More See: http://www.breezejs.com/documentation/query-examples ## Resources ## * http://www.breezejs.com/documentation/querying-depth * http://www.breezejs.com/documentation/query-examples