//////////////////////////////////////////////////////////////////////////////// /// @brief installation guide /// /// @file /// /// DISCLAIMER /// /// Copyright 2012 triAGENS GmbH, Cologne, Germany /// /// Licensed under the Apache License, Version 2.0 (the "License"); /// you may not use this file except in compliance with the License. /// You may obtain a copy of the License at /// /// http://www.apache.org/licenses/LICENSE-2.0 /// /// Unless required by applicable law or agreed to in writing, software /// distributed under the License is distributed on an "AS IS" BASIS, /// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. /// See the License for the specific language governing permissions and /// limitations under the License. /// /// Copyright holder is triAGENS GmbH, Cologne, Germany /// /// @author Dr. Frank Celler /// @author Copyright 2012, triAGENS GmbH, Cologne, Germany //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- SIMPLE QUERIES // ----------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// /// @page SimpleQueriesTOC /// /// //////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// /// @page SimpleQueries Simple Queries /// /// Simple queries can be used if the query condition is straight forward, /// i.e., a document reference, all documents, a query-by-example, or a simple /// geo query. In a simple query you can specify exactly one collection and one /// query criteria. In the following sections we describe the JavaScript shell /// interface for simple queries, which you can use within the ArangoDB shell /// and within actions and transactions. For other languages see the /// corresponding language API documentation. /// /// If a query returns a cursor, then you can use @FN{hasNext} and @FN{next} to /// iterate over the result set or @FN{toArray} to convert it to an array. /// /// If the number of query results is expected to be big, it is possible to /// limit the amount of documents transferred between the server and the client /// to a specific value. This value is called @LIT{batchSize}. The @LIT{batchSize} /// can optionally be set before or when a simple query is executed. /// If the server has more documents than should be returned in a single batch, /// the server will set the @LIT{hasMore} attribute in the result. It will also /// return the id of the server-side cursor in the @LIT{id} attribute in the result. /// This id can be used with the cursor API to fetch any outstanding results from /// the server and dispose the server-side cursor afterwards. /// /// The initial @LIT{batchSize} value can be set using the @FN{setBatchSize} /// method that is available for each type of simple query, or when the simple /// query is executed using its @FN{execute} method. If no @LIT{batchSize} value /// is specified, the server will pick a reasonable default value. /// /// @EMBEDTOC{ SimpleQueriesTOC} /// /// @CLEARPAGE /// @section SimpleQueriesQueries Queries ///////////////////////////////////////// /// /// @anchor SimpleQueryAll /// @copydetails JSF_ArangoCollection_prototype_all /// /// @CLEARPAGE /// @anchor SimpleQueryByExample /// @copydetails JSF_ArangoCollection_prototype_byExample /// /// @CLEARPAGE /// @anchor SimpleQueryFirstExample /// @copydetails JSF_ArangoCollection_prototype_firstExample /// /// @CLEARPAGE /// @anchor SimpleQueryRange /// @copydetails JSF_ArangoCollection_prototype_range /// /// @CLEARPAGE /// @anchor SimpleQueryCollectionCount /// @copydetails JS_CountVocbaseCol /// /// @CLEARPAGE /// @anchor SimpleQueryToArray /// @copydetails JSF_ArangoCollection_prototype_toArray /// /// @CLEARPAGE /// @section SimpleQueriesGeoQueries Geo Queries //////////////////////////////////////////////// /// /// The ArangoDB allows to select documents based on geographic coordinates. In /// order for this to work, a geo-spatial index must be defined. This index /// will use a very elaborate algorithm to lookup neighbors that is a magnitude /// faster than a simple R* index. /// /// In general a geo coordinate is a pair of latitude and longitude. This can /// either be an list with two elements like @LIT{[-10\, +30]} (latitude /// first, followed by longitude) or an object like @LIT{{lon: -10\, lat: +30}}. /// In order to find all documents within a given radius around a coordinate /// use the @FN{within} operator. In order to find all documents near a given /// document use the @FN{near} operator. /// /// It is possible to define more than one geo-spatial index per collection. In /// this case you must give a hint using the @FN{geo} operator which of indexes /// should be used in a query. /// /// @CLEARPAGE /// @anchor SimpleQueryNear /// @copydetails JSF_ArangoCollection_prototype_near /// /// @CLEARPAGE /// @anchor SimpleQueryWithin /// @copydetails JSF_ArangoCollection_prototype_within /// /// @CLEARPAGE /// @anchor SimpleQueryGeo /// @copydetails JSF_ArangoCollection_prototype_geo /// /// @CLEARPAGE /// @section SimpleQueriesPagination Pagination /////////////////////////////////////////////// /// /// If, for example, you display the result of a user search, then you are in /// general not interested in the completed result set, but only the first 10 or /// so documents. Or maybe the next 10 documents for the second page. In this /// case, you can the @FN{skip} and @FN{limit} operators. These operators work /// like LIMIT in MySQL. /// /// @FN{skip} used together with @FN{limit} can be used to implement pagination. /// The @FN{skip} operator skips over the first n documents. So, in order to /// create result pages with 10 result documents per page, you can use /// @LIT{skip(n * 10).limit(10)} to access the 10 documents on the n.th page. /// This result should be sorted, so that the pagination works in a predicable /// way. /// /// @CLEARPAGE /// @anchor SimpleQueryLimit /// @copydetails JSF_SimpleQuery_prototype_limit /// /// @CLEARPAGE /// @anchor SimpleQuerySkip /// @copydetails JSF_SimpleQuery_prototype_skip /// /// @CLEARPAGE /// @section SimpleQueriesCursor Sequential Access and Cursors ////////////////////////////////////////////////////////////// /// /// @anchor SimpleQueryHasNext /// @copydetails JSF_SimpleQuery_prototype_hasNext /// /// @CLEARPAGE /// @anchor SimpleQueryNext /// @copydetails JSF_SimpleQuery_prototype_next /// /// @CLEARPAGE /// @anchor SimpleQuerySetBatchSize /// @copydetails JSF_SimpleQuery_prototype_setBatchSize /// /// @CLEARPAGE /// @anchor SimpleQueryGetBatchSize /// @copydetails JSF_SimpleQuery_prototype_getBatchSize /// /// @CLEARPAGE /// @anchor SimpleQueryExecute /// @copydetails JSF_SimpleQuery_prototype_execute /// /// @CLEARPAGE /// @anchor SimpleQueryDispose /// @copydetails JSF_SimpleQuery_prototype_dispose /// /// @CLEARPAGE /// @anchor SimpleQueryCount /// @copydetails JSF_SimpleQuery_prototype_count //////////////////////////////////////////////////////////////////////////////// // ----------------------------------------------------------------------------- // --SECTION-- END-OF-FILE // ----------------------------------------------------------------------------- // Local Variables: // mode: outline-minor // outline-regexp: "^\\(/// @brief\\|/// {@inheritDoc}\\|/// @addtogroup\\|// --SECTION--\\|/// @page\\|/// @\\}\\)" // End: