MongoDB学习笔记(二) 增删改查

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
云数据库 MongoDB,通用型 2核4GB
简介: MongoDB学习笔记(二) 增删改查


1、基本概念


由于 MongoDB和我们常用的关系型数据库也有一定的联系,这里先给大家说一下,便于 类比学习

关系型数据库 MongoDB
数据库 数据库
集合
文档
字段


(1)数据库


MongoDB 的单个实例可以容纳多个独立的数据库,不同的数据库放置在不同的文件中

(2)集合


集合是 MongoDB 文档的集合,类似于关系型数据库中表的概念

集合没有固定的结构,可以在集合中插入不同格式和类型的数据,但通常情况下这些数据都有一定的关联


(3)文档


文档是一组键值对,类似于关系型数据库中行的概念,其数据结构与 JSON 基本一样,称为 BSON

文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,但是文档中的键值对必须是有序的


2、数据库操作


MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将默认存放在 test 数据库中


(1)创建数据库


use DATABASE_NAME


如果数据库存在,则切换到指定的数据库;如果数据库不存在,则创建数据库

例如,以下的命令将会创建 myDB 数据库:

> use myDB
switched to db myDB


(2)查看已有数据库


> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB


注意:刚刚创建的数据库并不会出现在数据库列表中,只有向新创建的数据库中插入数据后,才会显示


(3)查看当前数据库


> db
myDB


(4)删除当前数据库


> db.dropDatabase()
{ "ok" : 1 }


3、集合操作


(1)创建集合


db.createCollection(
    COLLECTION_NAME,
  {
      capped: <boolean>,      // 可选,若为 true,则创建固定集合,且此时必须要指定 size 参数
      autoIndexId: <boolean>, // 可选,若为 true,则自动在 `_id` 字段创建索引
      size: <number>,         // 可选,为固定集合指定可以使用的最大空间(以字节计)
      max: <number>           // 可选,为固定集合指定包含文档的最大数量
    }
)


注意:在 MongoDB 中,创建集合之后要再插入文档,集合才会真正创建

例如,以下的命令将会在 myDB 数据库中创建 myCol 集合:

> use myDB
switched to db test
> db.createCollection("myCol")
{ "ok" : 1 }


(2)查看已有集合


> show collections
myCol


(3)删除集合


db.COLLECTION_NAME.drop()


例如,以下的命令将会删除 myDB 数据库中的 myCol 集合:

> db.myCol.drop()
true


4、文档操作


(1)插入文档


db.COLLECTION_NAME.insert(document)


注意:如果集合不在数据库中, MongoDB 将会自动创建该集合并插入文档


例如,以下的命令将会向 myDB 数据库中的 myCol 集合插入文档:

> use myDB
switched to db myDB
> db.myCol.insert({"name":"MongoDB"})
WriteResult({ "nInserted" : 1 })


(2)查询文档


db.COLLECTION_NAME.find(
  query,    // 可选,指定查询文档的条件
  projection  // 可选,使用投影操作指定返回的键,默认省略,表示返回文档中所有的键
)


常见的查询条件如下:


描述 操作符 格式
等于 {<key>:<value>}
不等于 $ne {<key>:{$ne:<value>}}
小于 $lt {<key>:{$lt:<value>}}
小于等于 $lte {<key>:{$lte:<value>}}
大于 $gt {<key>:{$gt:<value>}}
大于等于 $gte {<key>:{$gte:<value>}}
ND 条件 {<key1>:<value1>,<key2>:<value2>}
OR 条件 $or {$or:[{<key1>:<value1>},{<key2>:<value2>}]}


例如,以下的命令将会查询 name 字段等于 MongoDB 的文档:

> db.myCol.find({"name":"MongoDB"})
{ "_id" : ObjectId("5c7c069826cb01475e68f64e"), "name" : "MongoDB" }


(3)更新文档


db.COLLECTION_NAME.update(
    query,    // 指定被更新的对象
    update,   // 指定更新对象
    {
        upsert: <boolean>,  // 可选,指定如果不存在被更新的对象时是否插入更新对象,默认为 false
        multi: <boolean>, // 可选,若为 true,则更新所有符合条件的记录,默认为 false
        writeConcern: <document>  // 可选,指定抛出异常的级别
    }
)


例如,以下的命令将会更新 myDB 数据库中的 myCol 集合中的数据字段 name:

> db.myCol.update({"name":"MongoDB"},{$set:{"name":"MySQL"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })


(4)删除文档


db.COLLECTION_NAME.remove(
    query,  // 指定被删除的对象
    {
        justOne: <boolean>,      // 可选,若为 true,则只删除一个文档,默认为 false
        writeConcern: <document> // 可选,定义抛出异常的级别
    }
)


例如,以下的命令将会删除 myDB 数据库中的 myCol 集合中的 name 字段等于 MySQL 的文档:

> db.myCol.remove({"name":"MySQL"})
WriteResult({ "nRemoved" : 1 })




相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
6月前
|
NoSQL 数据可视化 关系型数据库
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
mongoDB入门教程三:数据库的创建和删除(增删改查)基本命令
142 0
|
8月前
|
JSON NoSQL MongoDB
mongodb基本操作,增删改查,查询,索引,权限机制
mongodb基本操作,增删改查,查询,索引,权限机制
|
9月前
|
存储 NoSQL Java
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
SpringBoot 中使用 MongoDB 基于 MongoRepository增删改查(基础篇)
380 0
|
9月前
|
SQL NoSQL API
五分钟叫你学会操作MongoDB增删改查
五分钟叫你学会操作MongoDB增删改查
127 0
|
10月前
|
JSON NoSQL 数据库连接
[虚幻引擎 MongoDB Client 插件说明] DTMongoDB MongoDB数据库连接插件,UE蓝图可以操作MongoDB数据库增删改查。
本插件可以在UE里面使用蓝图操作MongoDB数据库, 对数据库进行查询,删除,插入,替换,更新操作。
128 0
|
11月前
|
NoSQL 关系型数据库 MySQL
MongoDB 基本操作 增删改查
MongoDB 基本操作 增删改查
188 0
|
NoSQL 算法 Linux
MongoDB学习笔记(五) 集群搭建之副本集
MongoDB学习笔记(五) 集群搭建之副本集
351 0
|
NoSQL Linux MongoDB
MongoDB学习笔记(四) 集群搭建之主从复制
MongoDB学习笔记(四) 集群搭建之主从复制
532 0
|
分布式计算 NoSQL MongoDB
MongoDB学习笔记(三) 聚合
MongoDB学习笔记(三) 聚合
99 0
|
NoSQL 数据可视化 Linux
MongoDB学习笔记(一) 安装配置
MongoDB学习笔记(一) 安装配置
898 0