当前位置:Gxlcms > 数据库问题 > Mondb

Mondb

时间:2021-07-01 10:21:17 帮助过:10人阅读

  connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb   Implicit session: session { "id" : UUID("66e2b331-e3c3-4b81-b676-1ee4bac87abf") }   MongoDB server version: 4.0.10   Welcome to the MongoDB shell.

 基础概念详解

1 数据库

一个mongodb中可以建立多个数据库。MongoDB的默认数据库为"db",该数据库存储在data目录中。MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。

1)显示所有数据库

> show dbs

admin:从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。

local:这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

config:当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

2)显示当前使用的数据库

> db

test

3)切换数据库

> use local

switched to db local

> db

local

2 文档(Document)

文档是一组键值(key-value)对组成。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。

一个简单的例子:

{"name":"kris"}

注意:

1.文档中的键/值对是有序的。

2.MongoDB区分类型和大小写。

3.MongoDB的文档不能有重复的键。

4.文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

.3 集合

集合就是 MongoDB 文档组,类似于MySQL中的table。

集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

下面我们来看看如何创建集合:

MongoDB 中使用 createCollection() 方法来创建集合。

语法格式:

db.createCollection(name, options)

参数说明:

name: 要创建的集合名称

options: 可选参数, 指定有关内存大小及索引的选项

options 可以是如下参数:

字段

类型

描述

capped

布尔

(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。

autoIndexId

布尔

(可选)如为 true,自动在 _id 字段创建索引。默认为 false。

size

数值

(可选)为固定集合指定一个最大值(以字节计)。
如果 capped true,也需要指定该字段。

max

数值

(可选)指定固定集合中包含文档的最大数量。

案例1:在test库中创建一个kris的集合

> show dbs;
admin   0.000GB
config  0.000GB
local   0.000GB
> db
test
> use test;
switched to db test
>  db.createCollection("kris")
{ "ok" : 1 }
> show collections
kris
> db.kris.insert({"name":"kris","url":"www.kris.com"}) //插入数据
WriteResult({ "nInserted" : 1 })
> db.kris.find() //查看数据
{ "_id" : ObjectId("5d5fad9566a14dcba07e4b66"), "name" : "kris", "url" : "www.kris.com" }
> 

说明:

ObjectId 类似唯一主键,可以很快的去生成和排序,包含 12 bytes,含义是:

  前 4 个字节表示创建 unix 时间戳

  接下来的 3 个字节是机器标识码

  紧接的两个字节由进程 id 组成 PID

  最后三个字节是随机数

案例2:创建一个固定集合mycol

 

案例3:自动创建集合

在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

> db.mycol2.insert({"name":"kris"})
WriteResult({ "nInserted" : 1 })
> show collections kris mycol mycol2

 

案例4:删除集合

> db.mycol2.drop()
True

> show tables;
kris
mycol

 

 

 

MongoDB

- MongoDB是一个NoSQL的数据库
    - MongoDB是一款文档型数据库(database)
    - 数据库指的就是一个存储数据的仓库
        数据库可以使我们完成对数据的持久化的操作
    - MongoDB数据库中存储的数据的基本单位就是文档(document),
        MongoDB中存储的就是文档,所谓文档其实就是一个“JSON”
    - MongoDB中的“JSON”我们称为BSON,比普通的JSON的功能要更加的强大
    - MongoDB数据库使用的是JavaScript进行操作的,在MongoDB含有一个对ES标准实现的引擎,
        在MongoDB中所有ES中的语法中都可以使用
     数据库(database)
        集合(collection)
        文档(document)
            - 在MongoDB中,数据库和集合都不需要手动创建,
                当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合
- MongoDB的基本的指令 - 启动服务器 mongod --dbpath 路径 --port 端口号 
- 启动客户端 mongo - MongoDB的CRUD的操作
- 基本操作 use 数据库
- 进入指定的数据库 show dbs
- 显示所有的数据库 show collections
- 显示数据库中所有的集合 db
- 显示当前所在的数据库
- 向数据库中插入文档 - db.collection.insert() - insert()可以向集合中插入一个或多个文档
            db.<collection>.insert(doc)
                - 向集合中插入一个文档
                - 例子:向test数据库中的,stus集合中插入一个新的学生对象
                    {name:"孙悟空",age:18,gender:"男"}
                    db.stus.insert({name:"孙悟空",age:18,gender:"男"})
- db.collection.insertOne()
                - 向集合中插入一个文档
            - db.collection.insertMany()
                - 向集合中插入多个文档
                
        - 查询数据库中的文档
            - db.collection.find()
                - 可以根据指定条件从集合中查询所有符合条件的文档
                - 返回的是一个数组
            - db.collection.findOne()
                - 查询第一个符合条件的文档
                - 返回的是一个对象
            - db.collection.find().count()
                - 查询符合条件的文档的数量
                
        - 修改数据库中的文档
            - db.collection.update()
                - 可以修改、替换集合中的一个或多个文档
            - db.collection.updateOne()
                - 修改集合中的一个文档
            - db.collection.updateMany()
                - 修改集合中的多个文档
            - db.collection.replaceOne()
                - 替换集合中的一个文档
                
        - 删除集合中的文档
            - db.collection.remove()
                - 删除集合中的一个或多个文档(默认删除多个)
            - db.collection.deleteOne()
                - 删除集合中的一个文档
            - db.collection.deleteMany()
                - 删除集合中的多个文档
            - 清空一个集合
                db.collection.remove({})
            - 删除一个集合
                db.collection.drop()
            - 删除一个数据库
                db.dropDatabase()
                
        

 

Mondb

标签:done   port   手动   基础   随机数   use   alt   本地   就是   

人气教程排行