跳到主要内容

MongoDB 连接服务

在开始使用 MongoDB 之前,你需要先学会如何连接到 MongoDB 服务。无论是通过命令行工具,还是使用各种编程语言的驱动程序,连接 MongoDB 都是操作数据库的第一步。接下来,就让我们一起了解如何连接 MongoDB 服务吧!

启动 MongoDB 服务​

在连接 MongoDB 之前,首先要确保 MongoDB 服务已经启动。你可以在 MongoDB 安装目录的 bin 文件夹下找到 mongod 可执行文件,并运行它来启动服务。启动后,MongoDB 会在输出一些必要信息后等待连接的建立,当有客户端连接时,就会开始打印日志信息。

使用 MongoDB Shell 连接​

MongoDB Shell 是一个命令行工具,用于与 MongoDB 服务进行交互。你可以通过在终端或命令提示符中输入 mongosh 来启动 MongoDB Shell:

$ mongosh

默认情况下,它会尝试连接到本地运行的 MongoDB 服务(默认端口为 27017)。如果连接成功,你会看到类似以下的输出:

Current Mongosh Log ID: 66792d6b87657ebec9ed70f1
Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+2.2.9
Using MongoDB: 7.0.11
Using Mongosh: 2.2.9

标准 URI 连接语法​

MongoDB 使用标准的 URI 格式来连接数据库,这种格式非常灵活,可以包含多种连接选项。标准的连接 URI 格式如下:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]
  • mongodb://:协议头,表示使用 MongoDB。
  • [username:password@]:(可选)认证信息,包括用户名和密码。
  • host1[:port1][,...hostN[:portN]]:服务器地址和端口,可以是一个或多个 MongoDB 服务器的地址和端口。
  • /[defaultauthdb]:(可选)默认认证数据库。
  • [?options]:(可选)连接选项,例如 authSource(指定认证数据库)、replicaSet(指定副本集名称)、ssl(启用 SSL 连接)等。

MongoDB 数据库连接示例​

连接到本地 MongoDB 实例(默认端口 27017):

mongodb://localhost

连接到本地 MongoDB 实例并指定数据库:

mongodb://localhost/mydatabase

使用用户名和密码连接到本地 MongoDB 实例:

mongodb://username:password@localhost/mydatabase

连接到远程 MongoDB 实例:

mongodb://remotehost:27017

连接到副本集(Replica Set):

mongodb://host1:27017,host2:27017,host3:27017/mydatabase?replicaSet=myReplicaSet

使用 SSL 连接到 MongoDB:

mongodb://username:password@localhost:27017/mydatabase?ssl=true

使用多个选项连接:

mongodb://username:password@localhost:27017/mydatabase?authSource=admin&ssl=true

使用编程语言连接 MongoDB​

使用 Python(PyMongo)连接​

from pymongo import MongoClient

client = MongoClient('mongodb://user:password@localhost:27017/mydatabase?authSource=admin')
db = client['mydatabase']

使用 Node.js(Mongoose)连接​

const mongoose = require('mongoose');

mongoose.connect('mongodb://user:password@localhost:27017/mydatabase?authSource=admin', {
useNewUrlParser: true,
useUnifiedTopology: true
});

const db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
console.log('Connected to MongoDB');
});

使用 PHP 连接​

<?php
require 'vendor/autoload.php'; // 引入 Composer 自动加载文件

$client = new MongoDB\Client("mongodb://localhost:27017"); // 连接到本地 MongoDB 实例
$database = $client->selectDatabase('mydatabase'); // 选择数据库
$collection = $database->selectCollection('mycollection'); // 选择集合

// 插入文档
$result = $collection->insertOne(['name' => 'Alice', 'age' => 30]);
echo "Inserted with Object ID '{$result->getInsertedId()}'";

// 查询文档
$document = $collection->findOne(['name' => 'Alice']);
echo "Found document: " . json_encode($document);
?>

使用 Java 连接​

import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoDatabase;

public class MongoDBConnection {
public static void main(String[] args) {
String uri = "mongodb://user:password@localhost:27017/mydatabase?authSource=admin";
try (MongoClient mongoClient = MongoClients.create(uri)) {
MongoDatabase database = mongoClient.getDatabase("mydatabase");
System.out.println("Connected to MongoDB");
}
}
}

小结​

通过本文,你已经了解了如何启动 MongoDB 服务以及如何通过 MongoDB Shell 和各种编程语言连接到 MongoDB 服务。标准的 URI 连接格式为你提供了灵活的连接选项,无论是连接到本地实例、远程实例还是副本集,都可以轻松实现。希望这些内容能帮助你快速上手 MongoDB 的连接操作。