> For the complete documentation index, see [llms.txt](https://jack80342.gitbook.io/spring-boot/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jack80342.gitbook.io/spring-boot/iv.-spring-boot-features/30.-working-with-nosql-technologies/30.2.-mongodb/30.2.1.-connecting-to-a-mongodb-database.md).

# 30.2.1. 连接MongoDB数据库

你可以注入一个自动配置的`org.springframework.data.mongodb.MongoDbFactory`来访问Mongo数据库。默认情况下，该实例将尝试使用URL `mongodb://localhost/test`连接到MongoDB服务器。下面的例子展示了怎么连接到一个MongoDB数据库：

```java
import org.springframework.data.mongodb.MongoDbFactory;
import com.mongodb.DB;

@Component
public class MyBean {

    private final MongoDbFactory mongo;

    @Autowired
    public MyBean(MongoDbFactory mongo) {
        this.mongo = mongo;
    }

    // ...
    public void example() {
        DB db = mongo.getDb();
        // ...
    }
}
```

你可以设置`spring.data.mongodb.uri`来改变该URL，并配置其它的设置，比如副本集，如下所示：

```
spring.data.mongodb.uri=mongodb://user:secret@mongo1.example.com:12345,mongo2.example.com:23456/test
```

另外，跟正在使用的Mongo 2.x一样，你可以指定`host`/`port`，比如，在`application.properties`中添加以下配置：

```java
spring.data.mongodb.host=mongoserver
spring.data.mongodb.port=27017
```

**注** Mongo 3.0 Java驱动不支持`spring.data.mongodb.host`和`spring.data.mongodb.port`。对于这种情况，`spring.data.mongodb.uri`需要提供全部的配置信息。

**注** 如果没有指定`spring.data.mongodb.port`，默认使用`27017`，上述示例中可以删除这行配置。

**注** 如果不使用Spring Data Mongo，你可以注入`com.mongodb.MongoClient`bean，以代替`MongoDbFactory`。如果想完全控制MongoDB连接的建立过程，你可以声明自己的`MongoDbFactory`或`MongoClient`bean。

**注** 如果你正在使用响应式的驱动，使用SSL需要Netty。如果Netty可用，并且将使用的工厂没有被配置，那么工厂会被自动配置好。
