Skip to content

Commit 7490643

Browse files
authored
Merge pull request #16 from rustagir/DOCSP-37860-geo
DOCSP-37860: geo query tutorial
2 parents 7fa58cb + b191ec7 commit 7490643

File tree

9 files changed

+224
-122
lines changed

9 files changed

+224
-122
lines changed

source/get-started/pojo-qs.txt

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -33,27 +33,27 @@ this guide:
3333
- Driver dependency installed in your project
3434
- The following import statements:
3535

36-
.. code-block:: java
37-
38-
import com.mongodb.client.result.InsertOneResult;
39-
import com.mongodb.client.result.InsertManyResult;
40-
import com.mongodb.client.result.DeleteResult;
41-
import com.mongodb.client.result.UpdateResult;
42-
import com.mongodb.reactivestreams.client.MongoClient;
43-
import com.mongodb.reactivestreams.client.MongoClients;
44-
import com.mongodb.reactivestreams.client.MongoCollection;
45-
import com.mongodb.reactivestreams.client.MongoDatabase;
46-
47-
import org.bson.codecs.configuration.CodecRegistry;
48-
import org.bson.codecs.pojo.PojoCodecProvider;
49-
50-
import java.util.List;
51-
52-
import static com.mongodb.client.model.Filters.*;
53-
import static com.mongodb.client.model.Updates.*;
54-
import static java.util.Arrays.asList;
55-
import static org.bson.codecs.configuration.CodecRegistries.fromProviders;
56-
import static org.bson.codecs.configuration.CodecRegistries.fromRegistries;
36+
.. code-block:: java
37+
38+
import com.mongodb.client.result.InsertOneResult;
39+
import com.mongodb.client.result.InsertManyResult;
40+
import com.mongodb.client.result.DeleteResult;
41+
import com.mongodb.client.result.UpdateResult;
42+
import com.mongodb.reactivestreams.client.MongoClient;
43+
import com.mongodb.reactivestreams.client.MongoClients;
44+
import com.mongodb.reactivestreams.client.MongoCollection;
45+
import com.mongodb.reactivestreams.client.MongoDatabase;
46+
47+
import org.bson.codecs.configuration.CodecRegistry;
48+
import org.bson.codecs.pojo.PojoCodecProvider;
49+
50+
import java.util.List;
51+
52+
import static com.mongodb.client.model.Filters.*;
53+
import static com.mongodb.client.model.Updates.*;
54+
import static java.util.Arrays.asList;
55+
import static org.bson.codecs.configuration.CodecRegistries.fromProviders;
56+
import static org.bson.codecs.configuration.CodecRegistries.fromRegistries;
5757

5858
- POJO class definitions. Copy the full code for the ``Person`` and
5959
``Address`` POJOs from the driver source repository on

source/get-started/quickstart.txt

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -34,39 +34,39 @@ this guide:
3434
- Driver dependency installed in your project
3535
- The following import statements:
3636

37-
.. code-block:: java
38-
39-
import com.mongodb.bulk.BulkWriteResult;
40-
import com.mongodb.client.model.BulkWriteOptions;
41-
import com.mongodb.client.model.DeleteOneModel;
42-
import com.mongodb.client.model.InsertOneModel;
43-
import com.mongodb.client.model.ReplaceOneModel;
44-
import com.mongodb.client.model.UpdateOneModel;
45-
import com.mongodb.client.model.WriteModel;
46-
import com.mongodb.client.result.InsertOneResult;
47-
import com.mongodb.client.result.InsertManyResult;
48-
import com.mongodb.client.result.DeleteResult;
49-
import com.mongodb.client.result.UpdateResult;
50-
51-
import com.mongodb.reactivestreams.client.MongoClient;
52-
import com.mongodb.reactivestreams.client.MongoClients;
53-
import com.mongodb.reactivestreams.client.MongoCollection;
54-
import com.mongodb.reactivestreams.client.MongoDatabase;
55-
56-
import org.bson.Document;
57-
58-
import java.util.ArrayList;
59-
import java.util.List;
60-
61-
import static com.mongodb.client.model.Accumulators.*;
62-
import static com.mongodb.client.model.Aggregates.*;
63-
import static com.mongodb.client.model.Filters.*;
64-
import static com.mongodb.client.model.Projections.*;
65-
import static com.mongodb.client.model.Sorts.*;
66-
import static com.mongodb.client.model.Updates.*;
67-
68-
import static java.util.Arrays.asList;
69-
import static java.util.Collections.singletonList;
37+
.. code-block:: java
38+
39+
import com.mongodb.bulk.BulkWriteResult;
40+
import com.mongodb.client.model.BulkWriteOptions;
41+
import com.mongodb.client.model.DeleteOneModel;
42+
import com.mongodb.client.model.InsertOneModel;
43+
import com.mongodb.client.model.ReplaceOneModel;
44+
import com.mongodb.client.model.UpdateOneModel;
45+
import com.mongodb.client.model.WriteModel;
46+
import com.mongodb.client.result.InsertOneResult;
47+
import com.mongodb.client.result.InsertManyResult;
48+
import com.mongodb.client.result.DeleteResult;
49+
import com.mongodb.client.result.UpdateResult;
50+
51+
import com.mongodb.reactivestreams.client.MongoClient;
52+
import com.mongodb.reactivestreams.client.MongoClients;
53+
import com.mongodb.reactivestreams.client.MongoCollection;
54+
import com.mongodb.reactivestreams.client.MongoDatabase;
55+
56+
import org.bson.Document;
57+
58+
import java.util.ArrayList;
59+
import java.util.List;
60+
61+
import static com.mongodb.client.model.Accumulators.*;
62+
import static com.mongodb.client.model.Aggregates.*;
63+
import static com.mongodb.client.model.Filters.*;
64+
import static com.mongodb.client.model.Projections.*;
65+
import static com.mongodb.client.model.Sorts.*;
66+
import static com.mongodb.client.model.Updates.*;
67+
68+
import static java.util.Arrays.asList;
69+
import static java.util.Collections.singletonList;
7070

7171
Make a Connection
7272
-----------------

source/tutorials.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ Tutorials
1515
/tutorials/aggregation/
1616
/tutorials/change-stream/
1717
/tutorials/text-search/
18+
/tutorials/geo/
1819

source/tutorials/aggregation.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,18 @@ this guide:
2828

2929
- The following import statements:
3030

31-
.. code-block:: java
32-
33-
import com.mongodb.reactivestreams.client.MongoClients;
34-
import com.mongodb.reactivestreams.client.MongoClient;
35-
import com.mongodb.reactivestreams.client.MongoCollection;
36-
import com.mongodb.reactivestreams.client.MongoDatabase;
37-
import com.mongodb.client.model.Aggregates;
38-
import com.mongodb.client.model.Accumulators;
39-
import com.mongodb.client.model.Projections;
40-
import com.mongodb.client.model.Filters;
41-
42-
import org.bson.Document;
31+
.. code-block:: java
32+
33+
import com.mongodb.reactivestreams.client.MongoClients;
34+
import com.mongodb.reactivestreams.client.MongoClient;
35+
import com.mongodb.reactivestreams.client.MongoCollection;
36+
import com.mongodb.reactivestreams.client.MongoDatabase;
37+
import com.mongodb.client.model.Aggregates;
38+
import com.mongodb.client.model.Accumulators;
39+
import com.mongodb.client.model.Projections;
40+
import com.mongodb.client.model.Filters;
41+
42+
import org.bson.Document;
4343

4444
.. important::
4545

source/tutorials/change-stream.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@ this guide:
3131

3232
- The following import statements:
3333

34-
.. code-block:: java
35-
36-
import com.mongodb.reactivestreams.client.MongoClients;
37-
import com.mongodb.reactivestreams.client.MongoClient;
38-
import com.mongodb.reactivestreams.client.MongoCollection;
39-
import com.mongodb.reactivestreams.client.MongoDatabase;
40-
41-
import com.mongodb.client.model.Aggregates;
42-
import com.mongodb.client.model.Filters;
43-
import com.mongodb.client.model.changestream.FullDocument;
44-
import com.mongodb.client.model.changestream.ChangeStreamDocument;
45-
46-
import org.bson.Document;
34+
.. code-block:: java
35+
36+
import com.mongodb.reactivestreams.client.MongoClients;
37+
import com.mongodb.reactivestreams.client.MongoClient;
38+
import com.mongodb.reactivestreams.client.MongoCollection;
39+
import com.mongodb.reactivestreams.client.MongoDatabase;
40+
41+
import com.mongodb.client.model.Aggregates;
42+
import com.mongodb.client.model.Filters;
43+
import com.mongodb.client.model.changestream.FullDocument;
44+
import com.mongodb.client.model.changestream.ChangeStreamDocument;
45+
46+
import org.bson.Document;
4747

4848
.. important::
4949

source/tutorials/connect.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,16 @@ this guide:
4949

5050
- The following import statements:
5151

52-
.. code-block:: java
53-
54-
import com.mongodb.reactivestreams.client.MongoClients;
55-
import com.mongodb.reactivestreams.client.MongoClient;
56-
import com.mongodb.MongoClientSettings;
57-
import com.mongodb.ConnectionString;
58-
import com.mongodb.ServerAddress;
59-
import com.mongodb.MongoCredential;
60-
61-
import java.util.Arrays;
52+
.. code-block:: java
53+
54+
import com.mongodb.reactivestreams.client.MongoClients;
55+
import com.mongodb.reactivestreams.client.MongoClient;
56+
import com.mongodb.MongoClientSettings;
57+
import com.mongodb.ConnectionString;
58+
import com.mongodb.ServerAddress;
59+
import com.mongodb.MongoCredential;
60+
61+
import java.util.Arrays;
6262

6363
MongoClient
6464
-----------

source/tutorials/geo.txt

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
.. _javars-geo:
2+
3+
=================
4+
Geospatial Search
5+
=================
6+
7+
.. contents:: On this page
8+
:local:
9+
:backlinks: none
10+
:depth: 2
11+
:class: singlecol
12+
13+
To support geospatial queries, MongoDB provides geospatial
14+
indexes and geospatial query operators.
15+
16+
To learn more about performing geospatial queries, see
17+
:manual:`Geospatial Queries </geospatial-queries/>` in the
18+
Server manual.
19+
20+
Prerequisites
21+
-------------
22+
23+
You must set up the following components to run the code examples in
24+
this guide:
25+
26+
- A ``test.restaurants`` collection populated with documents from the
27+
``restaurants.json`` file in the `documentation assets GitHub
28+
<https://raw.githubusercontent.com/mongodb/docs-assets/drivers/restaurants.json>`__.
29+
30+
- The following import statements:
31+
32+
.. code-block:: java
33+
34+
import com.mongodb.reactivestreams.client.MongoClients;
35+
import com.mongodb.reactivestreams.client.MongoClient;
36+
import com.mongodb.reactivestreams.client.MongoCollection;
37+
import com.mongodb.reactivestreams.client.MongoDatabase;
38+
import com.mongodb.client.model.geojson.*;
39+
import com.mongodb.client.model.Indexes;
40+
import com.mongodb.client.model.Filters;
41+
import org.bson.Document;
42+
43+
.. important::
44+
45+
This guide uses the ``Subscriber`` implementations, which are
46+
described in the :ref:`Quick Start Primer <javars-primer>`.
47+
48+
Connect to a MongoDB Deployment
49+
-------------------------------
50+
51+
First, connect to a MongoDB deployment and declare and define
52+
``MongoDatabase`` and ``MongoCollection`` instances.
53+
54+
The following code connects to a standalone
55+
MongoDB deployment running on ``localhost`` on port ``27017``. Then, it
56+
defines the ``database`` variable to refer to the ``test`` database and
57+
the ``collection`` variable to refer to the ``restaurants`` collection:
58+
59+
.. code-block:: java
60+
61+
MongoClient mongoClient = MongoClients.create();
62+
MongoDatabase database = mongoClient.getDatabase("test");
63+
MongoCollection<Document> collection = database.getCollection("restaurants");
64+
65+
To learn more about connecting to MongoDB deployments,
66+
see the :ref:`javars-connect` tutorial.
67+
68+
Create the 2dsphere Index
69+
-------------------------
70+
71+
To create a ``2dsphere`` index, use the ``Indexes.geo2dsphere()``
72+
helper to create a specification for the ``2dsphere`` index. Pass the
73+
specification to the ``MongoCollection.createIndex()`` method to create
74+
the index.
75+
76+
The following example creates a ``2dsphere`` index on the
77+
``"contact.location"`` field in the ``restaurants`` collection:
78+
79+
.. code-block:: java
80+
81+
MongoCollection<Document> collection = database.getCollection("restaurants");
82+
collection.createIndex(Indexes.geo2dsphere("contact.location"))
83+
.subscribe(new PrintSubscriber<String>());
84+
85+
Query for Locations Near a GeoJSON Point
86+
----------------------------------------
87+
88+
MongoDB provides various geospatial query operators. To facilitate
89+
the creation of geospatial query filters, the driver provides
90+
the ``Filters`` class and the ``com.mongodb.client.model.geojson``
91+
package.
92+
93+
The following example returns documents that are at least 1000 meters
94+
and at most 5000 meters from the specified GeoJSON ``Point`` instance,
95+
sorted from nearest to farthest:
96+
97+
.. code-block:: java
98+
99+
Point refPoint = new Point(new Position(-73.9667, 40.78));
100+
collection.find(Filters.near("contact.location", refPoint, 5000.0, 1000.0))
101+
.subscribe(new PrintDocumentSubscriber());

source/tutorials/read-ops.txt

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,22 @@ this guide:
2626

2727
- The following import statements:
2828

29-
.. code-block:: java
30-
31-
import com.mongodb.*;
32-
import com.mongodb.reactivestreams.client.MongoClients;
33-
import com.mongodb.reactivestreams.client.MongoClient;
34-
import com.mongodb.reactivestreams.client.MongoCollection;
35-
import com.mongodb.reactivestreams.client.MongoDatabase;
36-
import com.mongodb.client.model.Projections;
37-
import com.mongodb.client.model.Filters;
38-
import com.mongodb.client.model.Sorts;
39-
40-
import java.util.Arrays;
41-
import org.bson.Document;
29+
.. code-block:: java
30+
31+
import com.mongodb.*;
32+
import com.mongodb.reactivestreams.client.MongoClients;
33+
import com.mongodb.reactivestreams.client.MongoClient;
34+
import com.mongodb.reactivestreams.client.MongoCollection;
35+
import com.mongodb.reactivestreams.client.MongoDatabase;
36+
import com.mongodb.client.model.Projections;
37+
import com.mongodb.client.model.Filters;
38+
import com.mongodb.client.model.Sorts;
4239

43-
import static com.mongodb.client.model.Filters.*;
44-
import static com.mongodb.client.model.Projections.*;
40+
import java.util.Arrays;
41+
import org.bson.Document;
42+
43+
import static com.mongodb.client.model.Filters.*;
44+
import static com.mongodb.client.model.Projections.*;
4545

4646
.. important::
4747

0 commit comments

Comments
 (0)