以下是在 Windows 系统上安装 MongoDB 的详细步骤:
方法一:通过安装向导
-
下载安装包
- 访问官网下载页:https://www.mongodb.com/try/download/community
- 选择版本:
- Version :推荐最新稳定版(如
8.09
)。 - Platform :选择
Windows
。 - Package :选择
MSI
格式。
- Version :推荐最新稳定版(如
- 点击下载(DownLoad)。
-
运行安装向导
- 双击下载的
.msi
文件。 - 按提示操作,可自定义以下选项:
- 安装路径 :默认是
C:\Program Files\MongoDB\Server\<版本>\
。 - 安装组件 :勾选
Install MongoDB as a Service
(推荐以服务方式安装)。 - 数据目录 :默认是
C:\data\db
(需手动创建目录或修改路径)。
- 安装路径 :默认是
- 双击下载的
-
配置环境变量(可选)
- 将 MongoDB 的
bin
目录(如C:\Program Files\MongoDB\Server\7.0\bin
)添加到系统环境变量PATH
中,方便命令行调用。
- 将 MongoDB 的
-
验证安装
-
打开命令提示符(CMD),输入:
bashmongod --version mongo --version
若显示版本信息,则安装成功。
-
建议避免使用包含空格的路径,如"Program Files",这可能导致程序运行异常。
方法二:通过压缩包(灵活安装)
-
下载 ZIP 包
- 在官网下载页选择
ZIP
格式包(如mongodb-windows-x86_64-7.0.zip
)。
- 在官网下载页选择
-
解压并配置
- 将 ZIP 解压到目标目录(如
D:\mongodb\
)。 - 创建数据存储目录(如
D:\mongodb\data\db
)。
- 将 ZIP 解压到目标目录(如
-
启动 MongoDB
-
打开 CMD,切换到 MongoDB 的
bin
目录:bashcd D:\mongodb\bin
-
启动服务(指定数据目录):
bashmongod --dbpath D:\mongodb\data\db
-
保持窗口运行,服务默认监听
27017
端口。
-
-
连接测试
-
新开一个 CMD 窗口,运行:
bashmongo
进入 MongoDB Shell 即表示成功。
-
配置为系统服务(开机自启)
-
在 MongoDB 的
bin
目录下创建配置文件mongod.cfg
(内容如下):yamlsystemLog: destination: file path: D:\mongodb\log\mongod.log logAppend: true storage: dbPath: D:\mongodb\data\db net: port: 27017 bindIp: 127.0.0.1
-
以管理员身份运行 CMD,执行:
bashmongod --config "D:\mongodb\bin\mongod.cfg" --install
-
启动服务:
bashnet start MongoDB

常见问题
-
端口冲突
- 确保
27017
端口未被占用,或通过--port
指定其他端口。
- 确保
-
权限问题
- 以管理员身份运行 CMD,或为数据目录赋予写入权限。
-
连接失败
- 检查服务是否启动:
net start MongoDB
。
- 检查服务是否启动:
-
权限不足
- services Mongodb Server failed to start verify that you have sufficient privileges to start system services
- 右键 命令提示符(CMD) 或 PowerShell,选择 "以管理员身份运行"。
以下是排版优化后的 Markdown 内容,结构更清晰且符合技术文档规范:
-
无法启动
问题描述Windows 无法启动 MongoDB 服务,报错
1053
:
服务没有及时响应启动或控制请求
原因分析
权限不足、服务配置错误或启动超时可能导致此问题。
解决方案
方法 1:重新安装 MongoDB 服务
步骤:
-
以管理员身份运行 CMD,执行以下命令(替换实际路径):
bashmongod --remove mongod --install --dbpath="C:\data\db" --logpath="C:\data\log\mongod.log" --serviceName="MongoDB"
--dbpath
:数据存储目录(需提前创建,如C:\data\db
)--logpath
:日志文件路径(需确保目录存在且有写入权限)--serviceName
:服务名称(默认MongoDB
)
-
启动服务:
bashnet start MongoDB
方法 2:调整服务启动超时时间
步骤:
-
打开注册表编辑器(
regedit
),导航至:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
-
新建
DWORD (32-bit)
,命名为ServicesPipeTimeout
,值设为60000
(单位:毫秒,即 60 秒)。 -
重启计算机后重试启动服务。
方法 3:检查权限配置
关键操作:
-
目录权限:
- 右键
C:\data\db
和C:\data\log
,选择 属性 > 安全。 - 添加用户
NETWORK SERVICE
或Local System
,赋予 完全控制权限。
- 右键
-
服务账户权限:
- 打开
services.msc
,找到MongoDB
服务。 - 右键 属性 > 登录,切换为本地系统账户或管理员账户。
- 打开
方法 4:检查日志与数据完整性
步骤:
-
查看日志定位错误:
bashtype C:\data\log\mongod.log
- 常见错误 :
-
数据目录损坏 :删除
mongod.lock
或修复数据库(需备份)。 -
端口占用 :更换端口启动:
bashmongod --port 27018 --dbpath="C:\data\db"
-
- 常见错误 :
方法 5:彻底重装服务
步骤:
-
卸载现有服务:
bashmongod --remove sc delete MongoDB
-
清理残留文件(如旧配置或数据目录)。
-
通过配置文件重新安装(推荐):
-
配置文件示例(保存为
mongod.cfg
):yamlsystemLog: destination: file path: C:\data\log\mongod.log storage: dbPath: C:\data\db net: bindIp: 127.0.0.1 port: 27017
-
安装命令:
bashmongod --config "C:\path\to\mongod.cfg" --install
-
测试连接
以下是.NET 9使用MongoDB:
MongoDB.Entities 是一个简洁高效的 .NET 库,为 MongoDB 提供了类似 ORM 的体验。以下是详细使用指南:
1. 安装MongoDB驱动
首先,通过NuGet安装MongoDB.Entities包:
bash
dotnet add package MongoDB.Entities

2.基本连接操作
bash
using MongoDB.Entities;
// 初始化数据库连接
await DB.InitAsync("test");

3.定义实体Book 类
csharp
public class Book : Entity
{
public string Title { get; set; }
public int Price { get; set; }
public Author Author { get; set; }
public List<string> Tags { get; set; }
public DateTime PublishedOn { get; set; }
}
public class Author
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
csharp
var book = new Book
{
Title = "MongoDB指南",
Price = 99,
Author = new Author { FirstName = "张", LastName = "三" },
Tags = new List<string> { "数据库", "NoSQL" },
PublishedOn = DateTime.UtcNow
};
4.CRUD 操作
创建(Create)
csharp
// 保存单个文档
await book.SaveAsync();
var book1 = new Book
{
Title = "JAVA入门",
Price = 56,
Author = new Author { FirstName = "李", LastName = "四" },
Tags = new List<string> { "编程开发", "JAVA" },
PublishedOn = DateTime.UtcNow
};
var book2 = new Book
{
Title = ".NET 9",
Price = 199,
Author = new Author { FirstName = "王", LastName = "五" },
Tags = new List<string> { "编程开发", ".NET" },
PublishedOn = DateTime.UtcNow
};
var book3 = new Book
{
Title = "计算机网络",
Price = 399,
Author = new Author { FirstName = "吴", LastName = "七" },
Tags = new List<string> { "编程开发", "计算机网络" },
PublishedOn = DateTime.UtcNow
};
// 批量插入
var books = new[] { book1, book2, book3 };
await books.SaveAsync();
读取(Read)
csharp
// 按ID查找
var bookId = await DB.Find<Book>().OneAsync("5f8c9d3e6c1d4e2b3c8d9e0f");
// 条件查询
var expensiveBooks = await DB.Find<Book>()
.Match(b => b.Price > 50)
.Sort(b => b.Price, Order.Descending)
.Limit(10)
.ExecuteAsync();
更新(Update)
csharp
// 更新整个文档
await DB.Update<Book>()
.MatchID("5f8c9d3e6c1d4e2b3c8d9e0f")
.ModifyWith(book)
.ExecuteAsync();
// 部分更新
await DB.Update<Book>()
.Match(b => b.Price < 50)
.Modify(b => b.Price, 60)
.Modify(b => b.Title, "特价书")
.ExecuteAsync();
// 递增操作
await DB.Update<Book>()
.MatchID("5f8c9d3e6c1d4e2b3c8d9e0f")
.Modify(b => b.Price, +10)
.ExecuteAsync();
删除(Delete)
csharp
// 按ID删除
await DB.DeleteAsync<Book>("5f8c9d3e6c1d4e2b3c8d9e0f");
// 条件删除
await DB.DeleteAsync<Book>(b => b.Price < 30);
