当前位置: 首页 > ops >正文

Windows安装MongoDb.并使用.NET 9连接

以下是在 Windows 系统上安装 MongoDB 的详细步骤


方法一:通过安装向导

  1. 下载安装包

    • 访问官网下载页:https://www.mongodb.com/try/download/community
    • 选择版本:
      • Version:推荐最新稳定版(如 8.09)。
      • Platform:选择 Windows
      • Package:选择 MSI 格式。
    • 点击下载(DownLoad)。
      mongodb安装图
  2. 运行安装向导

    • 双击下载的 .msi 文件。
    • 按提示操作,可自定义以下选项:
      • 安装路径:默认是 C:\Program Files\MongoDB\Server\<版本>\
      • 安装组件:勾选 Install MongoDB as a Service(推荐以服务方式安装)。
      • 数据目录:默认是 C:\data\db(需手动创建目录或修改路径)。
  3. 配置环境变量(可选)

    • 将 MongoDB 的 bin 目录(如 C:\Program Files\MongoDB\Server\7.0\bin)添加到系统环境变量 PATH 中,方便命令行调用。
  4. 验证安装

    • 打开命令提示符(CMD),输入:
      mongod --version
      mongo --version
      
      若显示版本信息,则安装成功。

建议避免使用包含空格的路径,如"Program Files",这可能导致程序运行异常。


方法二:通过压缩包(灵活安装)

  1. 下载 ZIP 包

    • 在官网下载页选择 ZIP 格式包(如 mongodb-windows-x86_64-7.0.zip)。
  2. 解压并配置

    • 将 ZIP 解压到目标目录(如 D:\mongodb\)。
    • 创建数据存储目录(如 D:\mongodb\data\db)。
  3. 启动 MongoDB

    • 打开 CMD,切换到 MongoDB 的 bin 目录:
      cd D:\mongodb\bin
      
    • 启动服务(指定数据目录):
      mongod --dbpath D:\mongodb\data\db
      
    • 保持窗口运行,服务默认监听 27017 端口。
  4. 连接测试

    • 新开一个 CMD 窗口,运行:
      mongo
      
      进入 MongoDB Shell 即表示成功。

配置为系统服务(开机自启)

  1. 在 MongoDB 的 bin 目录下创建配置文件 mongod.cfg(内容如下):
    systemLog:destination: filepath: D:\mongodb\log\mongod.loglogAppend: true
    storage:dbPath: D:\mongodb\data\db
    net:port: 27017bindIp: 127.0.0.1
    
  2. 以管理员身份运行 CMD,执行:
    mongod --config "D:\mongodb\bin\mongod.cfg" --install
    
  3. 启动服务:
    net start MongoDB
    

在这里插入图片描述

常见问题

  1. 端口冲突

    • 确保 27017 端口未被占用,或通过 --port 指定其他端口。
  2. 权限问题

    • 以管理员身份运行 CMD,或为数据目录赋予写入权限。
  3. 连接失败

    • 检查服务是否启动:net start MongoDB
  4. 权限不足

    • services Mongodb Server failed to start verify that you have sufficient privileges to start system services
    • 右键 命令提示符(CMD) 或 PowerShell,选择 “以管理员身份运行”。
      以下是排版优化后的 Markdown 内容,结构更清晰且符合技术文档规范:
  5. 无法启动
    问题描述
    Windows 无法启动 MongoDB 服务,报错 1053
    服务没有及时响应启动或控制请求

原因分析
权限不足、服务配置错误或启动超时可能导致此问题。

解决方案

方法 1:重新安装 MongoDB 服务

步骤

  1. 以管理员身份运行 CMD,执行以下命令(替换实际路径):

    mongod --remove
    mongod --install --dbpath="C:\data\db" --logpath="C:\data\log\mongod.log" --serviceName="MongoDB"
    
    • --dbpath:数据存储目录(需提前创建,如 C:\data\db
    • --logpath:日志文件路径(需确保目录存在且有写入权限)
    • --serviceName:服务名称(默认 MongoDB
  2. 启动服务:

    net start MongoDB
    

方法 2:调整服务启动超时时间

步骤

  1. 打开注册表编辑器(regedit),导航至:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
    
  2. 新建 DWORD (32-bit),命名为 ServicesPipeTimeout,值设为 60000(单位:毫秒,即 60 秒)。
  3. 重启计算机后重试启动服务。

方法 3:检查权限配置

关键操作

  • 目录权限

    1. 右键 C:\data\dbC:\data\log,选择 属性 > 安全
    2. 添加用户 NETWORK SERVICELocal System,赋予 完全控制权限
  • 服务账户权限

    1. 打开 services.msc,找到 MongoDB 服务。
    2. 右键 属性 > 登录,切换为本地系统账户或管理员账户。

方法 4:检查日志与数据完整性

步骤

  1. 查看日志定位错误:
    type C:\data\log\mongod.log
    
    • 常见错误
      • 数据目录损坏:删除 mongod.lock 或修复数据库(需备份)。
      • 端口占用:更换端口启动:
        mongod --port 27018 --dbpath="C:\data\db"
        

方法 5:彻底重装服务

步骤

  1. 卸载现有服务:
    mongod --remove
    sc delete MongoDB
    
  2. 清理残留文件(如旧配置或数据目录)。
  3. 通过配置文件重新安装(推荐):
    • 配置文件示例(保存为 mongod.cfg):
      systemLog:destination: filepath: C:\data\log\mongod.log
      storage:dbPath: C:\data\db
      net:bindIp: 127.0.0.1port: 27017
      
    • 安装命令:
      mongod --config "C:\path\to\mongod.cfg" --install
      

测试连接
在这里插入图片描述


以下是.NET 9使用MongoDB:

MongoDB.Entities 是一个简洁高效的 .NET 库,为 MongoDB 提供了类似 ORM 的体验。以下是详细使用指南:

1. 安装MongoDB驱动

首先,通过NuGet安装MongoDB.Entities包:

dotnet add package MongoDB.Entities

在这里插入图片描述

2.基本连接操作

using MongoDB.Entities;
// 初始化数据库连接
await DB.InitAsync("test");

在这里插入图片描述

3.定义实体Book 类

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; }
}
var book = new Book
{Title = "MongoDB指南",Price = 99,Author = new Author { FirstName = "张", LastName = "三" },Tags = new List<string> { "数据库", "NoSQL" },PublishedOn = DateTime.UtcNow
};

4.CRUD 操作

创建(Create)

// 保存单个文档
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)

// 按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)

// 更新整个文档
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)

// 按ID删除
await DB.DeleteAsync<Book>("5f8c9d3e6c1d4e2b3c8d9e0f");// 条件删除
await DB.DeleteAsync<Book>(b => b.Price < 30);

在这里插入图片描述

http://www.xdnf.cn/news/7715.html

相关文章:

  • 深度学习+Flask 打包一个AI模型接口并部署上线
  • 【优秀三方库研读】在 quill 开源库中定义的 QUILL_LIKELY 和 QUILL_UNLIKELY 这两个宏的作用是什么
  • 【教程】Nuitka | Python打包exe新工具
  • Python 包管理工具核心指令uv sync解析
  • Brooks Polycold快速循环水蒸气冷冻泵客户使用手含电路图,适用于真空室应用
  • 什么是车载座舱产品的SRRC认证?
  • function calling简介
  • Vue组件开发深度指南:构建可复用与可维护的UI
  • python的加速方法
  • 【固废处理核心痛点】RS485转Profinet协议转换,如何提升设备监控效率?​​
  • Python训练营打卡31
  • 2025华为OD机试真题+全流程解析+备考攻略+经验分享+Java/python/JavaScript/C++/C/GO六种语言最佳实现
  • git 撤销最近的几次push
  • Linux系统编程-DAY01
  • 动态DNS管理:【etcd+CoreDNS】 vs【BIND9】便捷性对比
  • Profinet转RS485网关赋能热敏CTP冲版机:高精度数据交互的核心解码方案​​
  • C++静态函数错误解析与修复指南练习
  • 编程技能:字符串函数08,strcmp
  • 刚刚!2025年5月WOS期刊目录已更新,新增多本期刊,剔除1本SCI期刊,慎投!
  • 软件测试期末复习
  • 深入解析OrientDB:多模型数据库的技术优势与实际应用
  • 如何从不同位置将联系人导入 iPhone(完整指南)
  • STM32定时器简单采集编码器脉冲
  • 【ubuntu服务器显卡老是坏掉】
  • BGP边界网关协议
  • 9、AI测试辅助-代码Bug分析提示词优化
  • 静态代理有哪些优势
  • 深入理解指针(一)
  • HarmonyOS实战:3秒实现一个自定义轮播图
  • 纯前端实现 导入/导出/模板下载功能