温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MongoDB基本概念及使用

发布时间:2020-05-21 23:19:43 来源:网络 阅读:171 作者:wx5acc326ba509b 栏目:系统运维

MongoDB简介

简介:MongoDB是一个基于分布式文件存储的开源数据库系统,它基于文档(document,即关系型数据库中的行的概念)进行存储,以key=>value的形式进行存储,类似于JSON的格式。mongodb是属于文档型的非关系型数据库,是开源、高性能、高可用、可扩展的。

MongoDB和关系型数据库的对比

下图为sql术语与mongodb术语的对比:
MongoDB基本概念及使用

文档

文档是 MongoDB 中数据的基本单元,理解起来很简单,就是一组数据有序的放在一起就是文档。
例如:
单键值文档 {"userName":"Bertram"}
多键值文档 {"_id" : ObjectId("ff4a0ead0c5fc752b13f2af441b7da12"), "name" : "Bertram", "countryName" : "Japan" }

集合

多个文档放在一起就是集合。

数据库

多个集合放在一起就是数据库。

shell 部分命令表

1)show dbs 显示所有数据库

> show dbs       //新创建的数据库不会显示。需要写入一些数据,才会显示。
admin  (empty)
local  0.078GB
test   0.078GB
service 0.058GB
> 

2)db 显示当前数据库

> db 
test

3)use 切换 或 创建数据库

> use local     //如果数据库不存在,则创建数据库,否则切换到指定数据库。
switched to db local
> db
local
> 

MongoDB之数据库,集合,文档基本操作

1.MongoDB 创建数据库以及删除数据库

1) 创建数据库 :use  DATABASE_NAME  
   如果数据库不存在,则创建数据库,否则切换到指定数据库

2)删除数据库  : db.dropDatabase() 

2.创建集合以及删除集合

1)创建集合: db.createCollection(name, options)
参数说明:
•   name: 要创建的集合名称
•   options: 可选参数, 指定有关内存大小及索引的选项

2)集合删除:
db.collection.drop()

3)如果要查看已有集合,可以使用 show collections 或show tables命令:
> show collections 或 show tables

4)实例:
下面是带有几个关键参数的 createCollection() 的用法:
创建集合(整个集合空间大小 10240KB, 文档最大个数为17855200个。)
> db.createCollection('replicationColletion', {'capped':true, 'size':10240, 'max':17855200})
{ "ok" : 1 }
>
在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
> db.curriculum.insert({"name" : "English"})
> show collections
curriculum

3.插入文档

1) 插入文档:
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
db.serviceLECTION_NAME.insert(document)
实例:
以下文档可以存储在 MongoDB 的 runoob 数据库 的 service 集合中:
>db.service.insert({title: 'MongoDB 学习', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '51CTO博客',
    url: 'https://docs.mongodb.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})
以上实例中 service 是集合名,如果该集合不在该数据库中,MongoDB 会自动创建该集合并插入文档。

2)查看已插入文档:
> db.service.find()
{ "_id" : ObjectId("5e143d32183a994d1b71c06a"), "title" : "MongoDB 学习", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "51CTO博客", "url" : "https://docs.mongodb.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
-----
3)我们也可以将数据定义为一个变量,如下所示:
> document=({title: 'MongoDB 学习', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '51CTO博客',
    url: 'https://docs.mongodb.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
});
执行后显示结果如下:
{
    "title" : "MongoDB 学习",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "51CTO博客",
    "url" : "https://docs.mongodb.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
执行插入操作:
> db.service.insert(document)
WriteResult({ "nInserted" : 1 })
插入文档你也可以使用 db.service.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

4.查询文档

--MongoDB 查询文档使用 find() 方法。
--find() 方法以非结构化的方式来显示所有文档。
--MongoDB Limit() 方法
如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
--count查询记录条数
--MongoDB Skip() 方法
除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

实例:
> db.service.find()
{ "_id" : ObjectId("5e143d32183a994d1b71c06a"), "title" : "MongoDB 学习", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "51CTO博客", "url" : "https://docs.mongodb.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 
> db.service.find({},{"title":"0","_id":"1"}).limit(1)
{ "_id" : ObjectId("5e143d32183a994d1b71c06a"), "title" : "MongoDB 学习" }
> db.service.find().limit(2)
{ "_id" : ObjectId("5e143edc183a994d1b71c06b"), "title" : "Python 教程", "description" : "Python 是一种编程语言", "by" : "51CTO博客", "url" : "https://www.python.org", "tags" : [ "Python", "programme", "language" ], "likes" : 120 }
注:如果查询 find 没有指定limit()方法中的参数则显示集合中的所有数据。
> db.service.find().count()    //查询并统计结果记录数
> db.service.count()             //统计数据量
以下实例只会显示第二条文档数据
> db.service.find({},{"title":"1",_id:0}).limit(1).skip(1)
{ "title" : "Python 教程" }
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI