MongoDB基础知识

一、什么是MongoDB

MongoDB是一个开源的文档数据库,它采用了类似于JSON的BSON数据格式,可以支持复杂数据结构和动态查询。MongoDB可以减少不必要的关系型数据设计的复杂度,以及自身带有的分布式特性可以方便本身的扩展。

MongoDB的安装可以通过官方提供的rpm安装包,也可以通过源码编译进行安装。

安装完成后,我们需要开启mongodb的服务:

sudo service mongod start

二、基本概念

1.数据库

在MongoDB中,数据库可以看作是一组集合(Collection)的集合。每个数据库都有它自己的独立的权限和配置。MongoDB支持多数据库的操作,可以进行不同数据库之间的跨数据库操作。

// 使用use命令切换到一个新的数据库
use test_db 

// 查看当前所有的数据库
show dbs

// 删除一个数据库
db.dropDatabase()

2.集合

集合就是多个文档的集合,可以看作是关系型数据库中的表。集合中的每个文档都是JSON格式的文档。

// 创建一个集合
db.createCollection('test_collection')

// 查看一个数据库中所有的集合
show collections

// 删除一个集合
db.test_collection.drop()

3.文档

在MongoDB中,文档是以BSON格式进行存储的最小数据单位,类似于RDBMS中的行。文档可以随意修改、增加和删除,非常灵活。

db.test_collection.insert({
    "title": "MongoDB实战",
    "author": "coder",
    "content": "这是一本关于MongoDB实战的书籍"
})

4.字段

每个文档都可以包含零个或更多个字段,是访问文档中单个元素的路径。字段可以是字面量、数组、文档,在一个文档中,不同的字段的数据类型可以不同。

db.test_collection.insert({
    "title": "MongoDB实战",
    "author": "coder",
    "content": "这是一本关于MongoDB实战的书籍",
    "tags": ["数据库", "NoSQL"],
    "publishDate": new Date(),
})

三、查询语句

1.查询所有记录

使用find()方法查询所有记录。

//查询所有记录
db.test_collection.find()

2.条件查询

使用find()方法和查询条件进行特定条件的查询。

// 查找某个author的所有记录
db.test_collection.find({"author": "coder"})

// 查找三个月内的所有记录
db.test_collection.find({"publishDate": {"$gte": new Date(new Date().setMonth(new Date().getMonth() - 3))}})

3.限制查询记录

使用limit()方法限制查询返回的记录条数。

//查询前5条记录
db.test_collection.find().limit(5)

4.跳过查询记录

使用skip()方法跳过查询记录中的前n条记录。

//查询第5-10条记录
db.test_collection.find().skip(4).limit(6)

四、更新操作

1.修改一条记录

使用update()方法修改一条记录。如果不存在,则新建一条。

// 修改第一条记录的title为‘MongoDB从入门到放弃’
db.test_collection.update({"author": "coder"}, {"$set": {"title": "MongoDB从入门到放弃"}}, {"multi": false, "upsert": false})

2.修改多条记录

如果需要修改多条记录,则需要设置multi为true。

// 修改所有记录的title为‘MongoDB从入门到出家’
db.test_collection.update({"author": "coder"}, {"$set": {"title": "MongoDB从入门到出家"}}, {"multi": true, "upsert": false})

五、删除操作

1.删除一条记录

使用remove()方法删除一条记录。

// 删除title为‘MongoDB从入门到出家’的记录
db.test_collection.remove({"title": "MongoDB从入门到出家"})

2.删除多条记录

如果需要删除多条记录,则需要给remove()方法添加multi参数。

// 删除所有author为‘coder’的记录
db.test_collection.remove({"author": "coder"}, {"multi": true})

六、索引

在MongoDB中,索引和关系型数据库中的索引类似,可以提高查询效率。MongoDB中默认会为_id字段自动创建索引。

1.创建索引

可以使用ensureIndex()方法来为一个字段创建索引。

// 为title字段创建索引
db.test_collection.ensureIndex({"title": 1})

2.查看索引

使用getIndexes()方法查看一个集合中所有的索引。

// 查看一个集合中所有的索引
db.test_collection.getIndexes()

3.删除索引

通过dropIndexes()可以删除一个已经创建的索引。

// 删除title字段的索引
db.test_collection.dropIndex({"title": 1})

七、备份与恢复

1.备份数据

使用mongodump命令可以备份一个mongodb数据库。

// 备份数据库
mongodump --host 127.0.0.1 --port 27017 --out /data/backups/my_test_db/

2.恢复数据

使用mongorestore命令可以恢复一个mongodb数据库。

// 恢复数据库
mongorestore --host 127.0.0.1 --port 27017 /data/backups/my_test_db/

八、总结

以上是MongoDB的一些基础知识,包括数据库、集合、文档、字段、查询语句、更新操作、删除操作、索引、备份与恢复等。MongoDB的使用非常灵活,可以根据实际需要进行不同的配置。我们需要在使用过程中深入学习,在实际应用中进行探索。

原创文章,作者:JQPJG,如若转载,请注明出处:https://www.506064.com/n/362641.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
JQPJGJQPJG
上一篇 2025-02-27 19:28
下一篇 2025-02-27 19:28

相关推荐

  • Python元祖排序:从基础知识到高级应用

    Python元祖是一种不可变序列,通常用于将一组数据绑定在一起。元祖之间经常需要排序,本文将从基础知识到高级应用,为你详细讲解Python元祖排序。 一、排序方法 Python提供…

    编程 2025-04-28
  • 计算机二级基础知识题库

    计算机二级基础知识题库考试为计算机二级考试的必修科目之一,其中包含了计算机的基本知识以及应用能力等内容。本文将从题库概述、考试内容、备考建议以及编程实例等几个方面进行介绍,希望对广…

    编程 2025-04-27
  • Python连接MongoDB数据库

    MongoDB是一个流行的开源、非关系型、文档型数据库。Python具有简单、易学的语法、广泛的应用能力,因此它很适合连接MongoDB数据库。本文将从以下几个方面详细讨论Pyth…

    编程 2025-04-25
  • MongoDB使用详解

    一、什么是MongoDB? MongoDB是一个基于分布式文件存储的NoSQL数据库。 与传统关系型数据库不同,MongoDB没有固定表结构,采用文档存储方式。文档是JSON格式的…

    编程 2025-04-24
  • Linux MongoDB安装指南

    一、安装前的准备工作 在安装 MongoDB 之前,我们需要进行以下准备工作: 1、检查是否已经安装了 MongoDB。可以通过运行命令:mongod –version…

    编程 2025-04-23
  • MongoDB连接池详解

    MongoDB连接池是一个重要的组件,可以优化MongoDB的访问性能和资源利用率。在本文中,我们从多个方面探讨MongoDB连接池的配置、错误、模式、大小、参数设置和代码实现步骤…

    编程 2025-04-23
  • Linux下安装MongoDB教程

    一、下载MongoDB MongoDB是一个跨平台、面向文档的NoSQL数据库管理系统。首先,我们需要下载MongoDB的安装包。 1、打开MongoDB官网(https://ww…

    编程 2025-04-23
  • 软件测试理论基础知识

    一、测试概述 软件测试是指在已知测试用例的前提下,检查软件是否满足规定的功能和质量要求的过程。 软件测试的目的是要发现并纠正可能存在的缺陷。它涉及软件开发周期的各个阶段,从需求分析…

    编程 2025-04-23
  • Spring Boot集成MongoDB

    一、Spring Boot集成MongoDB多数据源 在Spring Boot中集成MongoDB多数据源需要配置多个MongoTemplate和多个MongoDbFactory。…

    编程 2025-04-23
  • MongoDB BSON介绍

    一、BSON的概念及优势 BSON(Binary JSON)是一种二进制的JSON格式。与JSON一样,BSON也是一种用于数据交换的文档存储格式。但是,BSON比JSON更具优势…

    编程 2025-04-22

发表回复

登录后才能评论