MongoDB 开发学习

如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文。本文将一步一步带您轻松入门。 阅读目录 一,简介 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解

如果你从来没有接触mongodb或对mongodb有一点了解,如果你是c#开发人员,那么你不妨花几分钟看看本文。本文将一步一步带您轻松入门。

 

阅读目录

 

一,简介

   MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

   MongoDB是一个高性能,开源,无模式的文档型数据库,是当前NoSql数据库中比较热门的一种。

     MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,香港虚拟主机,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

    传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。

 

二,特点

  它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

  1)面向集合存储,易存储对象类型的数据。

  2)模式自由。

  3)支持动态查询。

  4)支持完全索引,包含内部对象。

  5)支持查询。

  6)支持复制和故障恢复。

  7)使用高效的二进制数据存储,包括大型对象(如视频等)。

  8)自动处理碎片,以支持云计算层次的扩展性。

  9)支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。

  10)文件存储格式为BSON(一种JSON的扩展)。

  11)可通过网络访问。

 

三,下载安装和开启服务器

3.1)MongoDB 当前版本是2.0.4,下载地址:。提供了各种平台的版本。我这里选择的是Windows平台下的。

3.2)新建目录E: mongodb , 将下载的压缩包解压到此目录。bin文件夹下有一堆.exe 文件

MongoDB 开发学习

其中有两个最重要的文件:Mongod.exe和Mongo.exe 。

Mongod.exe 是用来连接到mongo数据库服务器的,即服务器端。

Mongo.exe 是用来启动MongoDB shell的,即客户端。

其他文件:

mongodump 逻辑备份工具。

mongorestore 逻辑恢复工具。

豆包爱学 豆包爱学

豆包旗下AI学习应用

豆包爱学 674 查看详情 豆包爱学

mongoexport  数据导出工具。

mongoimport  数据导入工具。

3.3)开启服务器

 第一步:新建一个目录用来存放MongoDB的数据库文件,即dbpath。随便建在那都可以,我这里建在 E:MongoDBFiles 。 这是为了下一步使用的。

 第二步:打开CMD窗口,键入如下命令

> e:

> cd e:mongodbmongodb-win32-i386-2.0.4bin

> mongod.exe -dbpath “E:mongodbfiles”

最后一行命令中的-dbpath 参数值就是我们第一步新建的文件夹。这个文件夹一定要在开启服务之前事先建立好,否则会报错,香港虚拟主机,mongodb不会自己创建。

如果操作成功会出现如下界面:

MongoDB 开发学习

该界面该我们展示了一些信息:如进程ID是2988,端口号是27017。

打开浏览器输入::27017/

我们看到了这样的提示:

“You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number”

到此,MongoDB数据库服务已经成功启动了。

 

四,使用mongo.exe 执行数据库增删改查操作

mongodb 为我们提供的客户端管理工具是mongo.exe

4.1)创建数据库:

 双击打开mongo.exe 出现如下界面:

MongoDB 开发学习

 

该界面的意思是,当前连接的数据库是test,这是系统默认将要创建的。为什么说是“将要创建的”呢?因为此时并不存在此数据库,或者说它现在还只在内存中,并没有创建在物理磁盘上。不信,你看MongoDBFiles文件夹下面除了mongod.lock外,什么都没有。只有当你执行了插入数据的命令后,该数据库才会真正的创建。

 

好了,我们暂时不管这个test了。现在我们来创建一个叫cnblogs 的数据库。

在shell 命令窗口键入如下命令:

> use cnblogs // use 命令用来切换当前数据库,如果该数据库不存在,则会先新建一个。

MongoDB 开发学习

 4.2)创建collection并插入数据

 在传统关系型数据库中,创建完了库后接下来会创建表,但是在mongoDB中没有“表”的概念,与其对应的一个概念是集合,即collection。

 在shell 命令窗口键入如下命令:

> db.users.insert({‘name’:’xumingxiang’,’sex’:’man’})
// 这条命令是向users 集合中插入一条数据。如果集合users不存在,则会先新建一个,然后再插入数据,参数以JSON格式传入。

 因为我们后面要测试删除数据,所以我们再插入一条数据:

> db.users.insert({‘name’:xiangshu’,’sex’:’man’})

4.3)在上面4.1)和4.2)我们创建了数据库,创建了集合,还插入了两条数据,那么这些操作有没有执行成功呢?我们来查询一下:

在shell 命令窗口键入如下命令:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/512897.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
利用Node.js实现地理定位功能的Web项目
上一篇 2025年11月9日 01:46:02
java框架如何提升持续交付中的质量控制?
下一篇 2025年11月9日 01:46:07

相关推荐

  • Go语言mgo查询构建:深入理解bson.M与日期范围查询的正确实践

    本文旨在解决go语言mgo库中构建复杂查询时,特别是涉及嵌套`bson.m`和日期范围筛选的常见错误。我们将深入剖析`bson.m`的类型特性,解释为何直接索引`interface{}`会导致“invalid operation”错误,并提供一种推荐的、结构清晰的代码重构方案,以确保查询条件能够正确…

    2026年5月10日
    100
  • Python中怎样使用pymongo?

    在python中使用pymongo可以轻松地与mongodb数据库进行交互。1)安装pymongo:pip install pymongo。2)连接到mongodb:from pymongo import mongoclient; client = mongoclient(‘mongod…

    2026年5月10日
    000
  • .NET中的仓储模式(Repository Pattern)是什么?如何解耦业务逻辑和数据访问?

    仓储模式是.NET中用于分离业务逻辑与数据访问的抽象层,通过定义如IUserRepository接口并结合依赖注入,实现对数据访问的具体技术解耦;业务逻辑仅依赖接口,可通过SqlUserRepository等具体实现操作数据库,而无需知晓底层细节;该模式提升可维护性、支持单元测试、降低耦合,并可配合…

    2026年5月10日
    000
  • 解决Python 3.11环境下Motor库异步协程导入错误的指南

    本文旨在解决在Python 3.11环境中使用Motor库时遇到的`ImportError: cannot import name ‘coroutine’ from ‘asyncio’`错误。该问题通常源于Motor库版本过旧,未能适配Python 3…

    2026年5月10日
    000
  • Discord机器人“禁闭”指令的实现与优化

    本教程详细探讨了Discord机器人中“禁闭”指令(Jail Command)的实现方法与常见问题解决方案。内容涵盖了如何创建和管理“禁闭”角色、正确配置频道权限覆盖以限制用户访问、以及在移除用户角色时如何优雅地处理特殊角色(如@everyone)以避免潜在错误。通过优化代码结构和强化权限检查,旨在…

    2026年5月10日
    000
  • HTML表单如何实现白名单功能?怎样只允许授权用户?

    要实现%ignore_a_1%的白名单功能并确保只有授权用户操作,核心答案是必须依赖后端服务器进行严格的身份认证、会话管理、授权检查和数据验证,前端仅能提供用户体验层面的初步提示而不能保障安全;具体而言,首先通过用户身份认证(如用户名/密码或oauth)确认用户身份,服务器创建会话并返回标识符,后续…

    2026年5月10日
    800
  • 解决 Node.js 连接本地 MongoDB 后程序卡死的问题

    本文旨在帮助开发者解决 Node.js 应用连接本地 MongoDB 数据库时,程序在建立连接后卡死的问题。通过分析可能的原因,并提供相应的解决方案,确保 Node.js 应用能够稳定可靠地与 MongoDB 数据库进行交互。文章将涵盖数据库连接配置、端口冲突、跨平台兼容性等方面,并提供代码示例进行…

    2026年5月10日
    000
  • Node.js Express 服务器启动与常见问题排查

    本教程旨在指导开发者正确初始化和启动 node.js express 服务器,解决服务器无响应或未运行的问题。文章将详细阐述 express 应用的创建、路由定义及端口监听等核心步骤,并针对常见的服务器启动失败、请求体解析错误以及数据持久化等问题提供专业的排查思路和解决方案,确保开发者能顺利构建稳定…

    2026年5月10日
    000
  • MongoDB 动态查询:获取集合中最近N年的数据

    本文详细介绍了如何在 MongoDB 中动态查询集合内最近N年的数据,而非基于当前系统时间。通过利用聚合管道的 $setWindowFields、$sort 和 $limit 等阶段,我们能够智能地识别集合中的最新日期,并以此为基准,灵活地提取指定时间范围内的记录,无需硬编码日期,极大地提升了查询的…

    2026年5月10日
    100
  • Golang结构体标签解析错误怎么办?Golang反射标签使用指南

    Golang结构体标签解析错误怎么办?Golang反射标签使用指南Golang结构体标签解析错误怎么办?Golang反射标签使用指南Golang结构体标签解析错误怎么办?Golang反射标签使用指南Golang结构体标签解析错误怎么办?Golang反射标签使用指南

    golang结构体标签解析错误通常由格式不正确、类型不匹配或反射使用不当引起。首先,确保标签格式正确,键值对用冒号分隔,多个键值对之间用空格分隔;其次,检查字段与标签值的类型是否匹配;再者,使用reflect包正确获取标签值,注意索引范围和字段可导出性;最后,处理可能出现的错误,如标签不存在返回空字…

    2026年5月10日 用户投稿
    000
  • Go mgo 教程:高效存储扁平化 Go 嵌套结构体

    本教程旨在解决使用 `mgo` 库将 Go 语言中的嵌套结构体存储到 MongoDB 时,默认行为导致文档结构出现嵌套的问题。我们将深入探讨如何利用 `bson` 包提供的 `inline` 标签,将嵌入式结构体的字段提升到父级文档中,从而实现扁平化的 MongoDB 文档结构,提升数据存储的直观性…

    2026年5月10日
    000
  • Go Cgo项目中使用环境变量灵活配置C/C++库路径

    本文旨在解决go语言c++go编译中,c/c++库路径硬编码导致的环境不兼容问题。通过深入解析cgo编译指示(`// #cgo`)与`cgo_cflags`、`cgo_ldflags`等环境变量的协同工作机制,教程将指导开发者如何利用环境变量动态指定库的包含路径和链接路径,从而实现跨平台、多开发者环…

    2026年5月10日
    000
  • 为什么多年的经验让我选择全栈而不是平均栈

    在全栈和平均栈开发方面工作了 6 年多,我可以告诉您,虽然这两种方法都是流行且有效的方法,但它们满足不同的需求,并且有自己的优点和缺点。这两个堆栈都可以帮助您创建 Web 应用程序,但它们的实现方式却截然不同。如果您在两者之间难以选择,我希望我在两者之间的经验能给您一些有用的见解。 在这篇文章中,我…

    2025年12月24日
    000
  • 五种高效的Ajax框架,助您快速开发

    高效开发利器:掌握这五个常用的Ajax框架 引言:在当今互联网时代,Web开发已经成为人们最常用的软件开发方法之一。而Ajax技术的出现,更是给Web开发带来了一种全新的交互方式。Ajax(Asynchronous JavaScript and XML)是一种基于现有的Web标准的开发技术,它可以使…

    2025年12月24日
    300
  • 零基础学习如何快速掌握CSS框架:快速入门指南

    CSS框架快速入门指南:从零开始学习如何快速做好CSS框架,需要具体代码示例 引言:在当今的Web开发中,CSS框架被广泛应用于构建漂亮、响应式的网页设计。CSS框架可以帮助开发者快速搭建美观、一致的网页布局,减少开发时间。本文将介绍如何从零开始学习并掌握使用CSS框架,以及提供具体的代码示例。 一…

    2025年12月24日
    000
  • 五款必备的CSS框架,前端开发人员不容错过!

    前端开发必备!五种常用的CSS框架推荐 在现如今的互联网时代,网页设计和开发已经成为了一种必备技能。而作为前端开发的重要组成部分之一,CSS框架的选择和使用对于网页的美观和用户体验起着至关重要的作用。本文将为大家推荐五种常用的CSS框架,帮助大家在前端开发中事半功倍。 一、Bootstrap Boo…

    2025年12月24日
    000
  • 从零开始学习CSS3:逐步掌握核心技术

    从零开始学习CSS3:逐步掌握核心技术 CSS(层叠样式表)是网页设计中不可或缺的一部分,它决定了网页的外观和布局。随着互联网的发展,CSS也不断更新,其中最新版本为CSS3。CSS3引入了许多新的特性和功能,提供更多的设计选择和更丰富的用户体验。本文将介绍如何从零开始学习CSS3,掌握其核心技术。…

    2025年12月24日
    000
  • CSS3的学习轨迹和常见误区解析

    CSS3的学习轨迹和常见误区解析 引言:随着Web技术的不断发展,CSS3已经成为了前端工程师必备的技能之一。通过掌握CSS3的各种功能和特效,我们能够创建出更加丰富多彩的网页布局和交互效果。本文将介绍CSS3的学习轨迹,同时分析一些常见的误区,并提供一些代码示例。 一、学习轨迹: 1.掌握基本语法…

    2025年12月24日
    500
  • 如何在html编辑代码_在HTML页面内编辑和运行代码块【代码】

    可在HTML页面内嵌入可交互代码编辑与执行功能,具体包括:一、CodeMirror+Function构造器实现JS即时运行;二、Monaco Editor配合Web Worker与vm2沙箱安全执行;三、iframe隔离预览HTML/CSS/JS;四、BrowserFS模拟本地文件系统。 如果您希望…

    2025年12月23日
    900
  • 手机怎么运行html5游戏_手机运行html5游戏步骤【指南】

    手机运行HTML5游戏无需安装,只需用现代浏览器打开网页即可。首先确保使用Chrome、Safari或Firefox等支持HTML5的最新浏览器;然后通过官网、二维码或分享链接获取游戏;接着在浏览器中输入网址或点击链接,等待加载后点击屏幕开始游戏;为提升体验,建议连接Wi-Fi、关闭后台应用、横屏操…

    2025年12月23日
    600

发表回复

登录后才能评论
关注微信