Mongodb 的练习讲解|学习笔记

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 快速学习 Mongodb 的练习讲解

开发者学堂课程【场景实践 - 基于MongoDB实现商品管理系统Mongodb的练习讲解】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/728/detail/12998


Mongodb的练习讲解

 

一、练习

1.创建一个数据库

use [databaseName]

如果创建的数据库不存在,use表示创建数据库;如果创建的数据库存在,就表示切换到数据库;但使用use创建不存在数据库时,需要注意一些事项:

在创建数据库之前,查看当前数据库,之后创建一个 itcast 数据库:

>show dbs

local (empty)

>use itcast

Switched to db itcast

>show dbs

Local (empty)

当我们进行查看时发现,没有看见 itcast 数据库,注意:使用use创建不存在数据库时,如果不对里面进行集合、document 操作,那这个数据库就是不存在的。故需要对数据库添加集合操作才能查看数据库是否存在

2.查看所有数据库

show dbs

3.给指定数据库添加集合并且添加记录

db.[collectionName].insert({…})

如何集合存在,直接插入数据,如果集合不存在,待创建完数据库之后再插入数据。

格式:

db.表名(collectionName集合名).insert({…….)或者db.表名(collectionNarme集合名).insert(对象名)

①先用use itcast命令,创建itcast数据库use itcast

②建立两个对象

③把这两个对象保存到数据库中的某一个张表即集合collection中

之前已经完成操作①,接下来进行操作②

两个对象如下:

>person={“name”:“heixuanfeng”

{“name”:“heixuanfeng”}

>animal={“name”:“cat”}

{“name”:“cat”}

由于 Mongodb 是非关系型数据库,可以存储不同类型数据,比如一个是 person,一个是animal,我们已经发现 Mongodb 的格式类似于 JSON,下面简单写一下两个对象:

>person={“name”:“heixuanfeng”

{“name”:“heixuanfeng”}

>animal={“name”:“cat”}

{“name”:“cat”}

>db.persons.insert(person)

>db.persons.insert(animal)

>show dbs

Itcast 0.078125GB

local (empty)

以上就表示插入数据成功,0.078125GB表示当前数据库的大小。之后查看当前数据库的集合:

>show collections

persons

system.indexes


说明:

1db属于固定写法,表示数据库 itcast 的意思。

2persons 代表一张表即集合。而这里为 collection.

3在 mongodb 中,collection 也是可以动态创建的。也就是说当执行这行命令的时候,如果没有该collection,会动态的创建该collection。

4大家可以看到,有一行记录为person,而另一行记录为animal,这两行记录的key值明显不一样。所以collection的结构是随意的,不受约束的。

5利用db.集合名.find()方法可以查询到collection中的所有的数据

接下来查看一下:

db. persons.find()

"_id": ObjectId("5aa8cc59baf95f1915073ea3"),"name" : "heixuanfeng"}

"_id" : 0bjectId("5aa8cc63baf95f191 73ea4"'),"name" : " cat"}

_id表示关系型数据库的id,默认类型是objectedid,如果不插入会自动生成。 

4.查看数据库中的所有文档

show collections

>show collections

persons

system.indexes

说明:system.indexes 是自动生成的集合,存储所有索引的。

 

5.查询制定文档的数据

查询所有db.[collectionName].find()

查询第一条数据db.[collectionName].findOne()

说明:

1)当我们向表即集合中添加数据的时候,如果不指定id,那么MongoDB会自动添加一个名字叫_id的id,属于Objectld对象类型.

2) _id Key

Mongodb 支持的数据类型中,_id是内部的。

在 mongodb 的每一个 Document 中都有一个默认的主键_id,该主键的名称是固定的。它可以是 mongodb 支持的任意数据类型。默认是Objectld。在关系型数据库中主键能设置为数值类型的。

由于 mongodb 是分布式数据库,所以不支持自动增长。

在一个 document 中,主键也可以不是Objectld类型,例如我可以插入一行数据为:{_id:1,name:asdf},但是值必须是唯一的。

db.persons.insert(i_id:1, "name" :"dog"})

db.persons.find(

{"_id” : ObjectId("5aa8cc59baf95f1915073ea3"), “name" : "heixuanfeng" }

{"_id" : ObjectId("5aa8cc63baf95f1915073ea4"),"name" : "cat"}

{"-id" : 1,"name": " dog"}

需求:查询persons集合中的第一条数据

db.persons.findOne()

{" _id" : ObjectId("5aa8cc59baf95f1915073ea3"), "name" : "heixuanfeng"} 

6.更新文档数据

db.[collectionName].update({查询条件},{更新内容})

例子:

var p=db.persons.findOne()

db.persons.update(p.{iname:"uspcat"})

需求:将 name 是 heixuanfeng 名字改为 likui

要先进行查询,再进行更新,因为name是heixuanfeng的是第一条数据,所以:

db.persons.update(db.persons.findOne(),{"name" : "likui"})

db.persons.findOne()

{"_id” : 0bjectId("5aa8cc59baf95f1915073ea3"),“name" : "likui"}

7.删除文档中的数据

db.[collectionName].remove({…})

例子: db.persons.remove({name:"uspcat"})

需求:删除 name 是 likui 的数据

首先查看所有:

>db. persons.find()

{"_id” : 0bjectId("5aa8cc59baf95f1915073ea3"),“name" : "likui"}

{"_id" : 0bjectId("5aa8cc59baf95f1915073ea4"",“name" : " cat”}

{"_id" : 1,"name": " dog"}

db.persons.remove( {"name" :"1ikui"})

db.persons.find()

{"_id" : ObjectId("5aa8cc63baf95f11 15073ea”),“name”:“cat”}

{"_id" : 1,"name": " dog”}

相关文章
|
存储 NoSQL MongoDB
【mongo 系列】mongodb 学习七,索引实操练习
向 mydoc 集合中,插入多条数据,mydoc 之前是没有存在过的,我们直接使用 db.mydoc.insertMany() ,mongodb 会默认给我们新建这个集合
299 0
|
NoSQL JavaScript 前端开发
MongoDB【CRUD练习-条件查询-文档关系】
MongoDB【CRUD练习-条件查询-文档关系】
|
存储 监控 NoSQL
MongoDB 快速入门-MongoDB 最佳实践(二)|学习笔记
快速学习 MongoDB 快速入门-MongoDB 最佳实践(二)
596 0
MongoDB 快速入门-MongoDB 最佳实践(二)|学习笔记
|
存储 JSON NoSQL
【BackEnd--Mongodb】学习笔记(完整详细版)
MongoDB是一种面向文档的非关系型数据库,所谓的面向文档是一种类似JSON的结构,因此可以简单理解MongoDB存储的是各种各样的JSONMongoDB可以快速开发web型应用,因为存储的是JSON格式,因此无需像关系型数据库那样需要建表,非常的的灵活。
438 0
|
NoSQL 关系型数据库 MySQL
|
存储 缓存 NoSQL
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
快速学习 Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
|
存储 SQL JSON
走进 MongoDB|学习笔记
快速学习走进 MongoDB
306 0
走进 MongoDB|学习笔记
|
SQL 存储 分布式计算
MongoDB 聚合框架|学习笔记
快速学习 MongoDB 聚合框架
515 0
MongoDB 聚合框架|学习笔记
|
NoSQL 算法 Linux
MongoDB学习笔记(五) 集群搭建之副本集
MongoDB学习笔记(五) 集群搭建之副本集
553 0
|
NoSQL Linux MongoDB
MongoDB学习笔记(四) 集群搭建之主从复制
MongoDB学习笔记(四) 集群搭建之主从复制
735 0

推荐镜像

更多
下一篇
oss云网关配置