-
Notifications
You must be signed in to change notification settings - Fork 10
DOCSP-41121 Connect to Mongo Client #34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 11 commits
1bc27b8
41338e5
5bd5db6
b8cfd03
f1d1edc
ff56653
031cf0f
520ff3e
58ba4b8
c70619f
ab30e3d
60f3b74
737405f
9be90ae
1e73d86
3c63a76
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
.. _kotlin-sync-connection-options: | ||
|
||
========================== | ||
Specify Connection Options | ||
========================== | ||
|
||
.. contents:: On this page | ||
:local: | ||
:backlinks: none | ||
:depth: 1 | ||
:class: singlecol | ||
|
||
.. facet:: | ||
:name: genre | ||
:values: reference | ||
|
||
.. meta:: | ||
:keywords: connection string, URI, server, Atlas, settings, configure | ||
|
||
Overview | ||
-------- |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
@@ -0,0 +1,131 @@ | ||||||
.. _kotlin-sync-mongoclient: | ||||||
|
||||||
==================== | ||||||
Create a MongoClient | ||||||
==================== | ||||||
|
||||||
.. facet:: | ||||||
:name: genre | ||||||
:values: reference | ||||||
|
||||||
.. meta:: | ||||||
:keywords: connection string, URI, server, Atlas, settings, client | ||||||
|
||||||
.. contents:: On this page | ||||||
:local: | ||||||
:backlinks: none | ||||||
:depth: 2 | ||||||
:class: singlecol | ||||||
|
||||||
Overview | ||||||
-------- | ||||||
|
||||||
To connect to a MongoDB deployment, you need two things: | ||||||
|
||||||
- A **connection URI**, also known as a *connection string*, which tells the {+driver-short+} | ||||||
which MongoDB deployment to connect to. | ||||||
- A **MongoClient** object, which creates the connection to and performs | ||||||
operations on the MongoDB deployment. | ||||||
|
||||||
You can also use ``MongoClientSettings`` to customize the way the {+driver-short+} behaves | ||||||
while connected to MongoDB. | ||||||
|
||||||
This guide shows you how to create a connection string and use a ``MongoClient`` object | ||||||
to connect to MongoDB. | ||||||
|
||||||
.. _kotlin-sync-connection-uri: | ||||||
|
||||||
Connection URI | ||||||
-------------- | ||||||
|
||||||
A standard connection string includes the following components: | ||||||
|
||||||
.. TODO, add this as last sentence for ``username:password`` description once a kotlin auth page is made: | ||||||
.. For more information about the ``authSource`` connection option, see :ref:`kotlin-sync-auth`. | ||||||
|
||||||
.. list-table:: | ||||||
:widths: 20 80 | ||||||
:header-rows: 1 | ||||||
|
||||||
* - Component | ||||||
- Description | ||||||
|
||||||
* - ``mongodb://`` | ||||||
|
||||||
- Required. A prefix that identifies this as a string in the | ||||||
standard connection format. | ||||||
|
||||||
* - ``username:password`` | ||||||
|
||||||
- Optional. Authentication credentials. If you include these, the client | ||||||
authenticates the user against the database specified in ``authSource``. | ||||||
|
||||||
* - ``host[:port]`` | ||||||
|
||||||
- Required. The host and optional port number where MongoDB is running. If you don't | ||||||
include the port number, the driver uses the default port, ``27017``. | ||||||
|
||||||
* - ``/defaultauthdb`` | ||||||
|
||||||
- Optional. The authentication database to use if the | ||||||
connection string includes ``username:password@`` | ||||||
authentication credentials but not the ``authSource`` option. If you don't include | ||||||
this component, the client authenticates the user against the ``admin`` database. | ||||||
|
||||||
* - ``?<options>`` | ||||||
|
||||||
- Optional. A query string that specifies connection-specific | ||||||
options as ``<name>=<value>`` pairs. See | ||||||
:ref:`kotlin-sync-connection-options` for a full description of | ||||||
jyemin marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
these options. | ||||||
|
||||||
For more information about creating a connection string, see | ||||||
:manual:`Connection Strings </reference/connection-string?tck=docs_driver_java_sync>` in the | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Is the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Java Sync is probably the closest match but it's still technically a different language (despite sharing a lot of syntax with Kotlin). I see that there's no option in the dropdown for kotlin, so I think we can remove the |
||||||
MongoDB Server documentation. | ||||||
|
||||||
Atlas Connection Example | ||||||
------------------------ | ||||||
|
||||||
To connect to a MongoDB deployment on Atlas, you must first create a client. | ||||||
|
||||||
You can pass a connection URI as a string to ``MongoClient.create()`` to connect | ||||||
to a MongoDB instance: | ||||||
|
||||||
.. literalinclude:: /includes/connect/mongoclient2.kt | ||||||
:start-after: start-connect-to-atlas-w-uri | ||||||
:end-before: end-connect-to-atlas-w-uri | ||||||
:language: kotlin | ||||||
:copyable: | ||||||
:dedent: | ||||||
|
||||||
You can also create a client with your desired configurations by passing a | ||||||
``MongoClientSettings`` object to the ``MongoClient.create()`` method. | ||||||
|
||||||
To instantiate a ``MongoClientSettings`` object, use the builder method to | ||||||
jyemin marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
specify your connection string, using the ``applyConnectionString()`` method, | ||||||
and any other client options. Once you have your desired configuration, | ||||||
call the ``build()`` method. | ||||||
|
||||||
You can set the Stable API version client option to avoid breaking changes when | ||||||
you upgrade to a new server version. To learn more about the Stable API feature, | ||||||
see the :ref:`Stable API page <kotlin-sync-stable-api>`. | ||||||
|
||||||
The following code shows how you can specify the connection string and the | ||||||
Stable API client option when connecting to a MongoDB deployment on Atlas | ||||||
and verify that the connection is successful: | ||||||
|
||||||
.. literalinclude:: /includes/connect/mongoclient.kt | ||||||
:start-after: start-connect-to-atlas | ||||||
:end-before: end-connect-to-atlas | ||||||
:language: kotlin | ||||||
:copyable: | ||||||
:dedent: | ||||||
|
||||||
API Documentation | ||||||
----------------- | ||||||
|
||||||
For more information about creating a ``MongoClient`` object with the | ||||||
{+driver-short+}, see the following API documentation: | ||||||
|
||||||
- `MongoClient <{+api+}/mongodb-driver-kotlin-sync/com.mongodb.kotlin.client/-mongo-client/index.html>`__ | ||||||
- `MongoClientSettings <{+core-api+}com/mongodb/MongoClientSettings.html>`__ |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
import com.mongodb.* | ||
import com.mongodb.kotlin.client.MongoClient | ||
import org.bson.BsonInt64 | ||
import org.bson.Document | ||
|
||
fun main() { | ||
|
||
// start-connect-to-atlas | ||
// start-connect-to-atlas-w-uri | ||
// Replace the placeholder with your Atlas connection string | ||
val uri = "<connection string>" | ||
val mongoClient1 = MongoClient.create(uri) | ||
// end-connect-to-atlas-w-uri | ||
|
||
// Construct a ServerApi instance using the ServerApi.builder() method | ||
val serverApi = ServerApi.builder() | ||
.version(ServerApiVersion.V1) | ||
.build() | ||
val settings = MongoClientSettings.builder() | ||
.applyConnectionString(ConnectionString(uri)) | ||
.serverApi(serverApi) | ||
.build() | ||
|
||
// Create a new client and connect to the server | ||
val mongoClient = MongoClient.create(settings) | ||
val database = mongoClient.getDatabase("sample_mflix") | ||
|
||
try { | ||
// Send a ping to confirm a successful connection | ||
val command = Document("ping", BsonInt64(1)) | ||
val commandResult = database.runCommand(command) | ||
println("Pinged your deployment. You successfully connected to MongoDB!") | ||
} catch (me: MongoException) { | ||
System.err.println(me) | ||
} | ||
// end-connect-to-atlas | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
import com.mongodb.* | ||
import com.mongodb.kotlin.client.MongoClient | ||
|
||
fun main() { | ||
|
||
// start-connect-to-atlas-w-uri | ||
// Replace the placeholder with your Atlas connection string | ||
val uri = "<connection string>" | ||
|
||
// Create a new client and connect to the server | ||
val mongoClient = MongoClient.create(uri) | ||
val database = mongoClient.getDatabase("sample_mflix") | ||
// end-connect-to-atlas-w-uri | ||
|
||
try { | ||
// Send a ping to confirm a successful connection | ||
val command = Document("ping", BsonInt64(1)) | ||
val commandResult = database.runCommand(command) | ||
println("Pinged your deployment. You successfully connected to MongoDB!") | ||
} catch (me: MongoException) { | ||
System.err.println(me) | ||
} | ||
} |
Uh oh!
There was an error while loading. Please reload this page.