Windows下MongoDB基本操作详解

以下摘自百度百科:

MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。

非关系数据库

NOSQL泛指非关系型数据库,英文全称为Not Only SQL,以下摘自百度百科:

随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。
NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

MongoDB的优势

容易扩展,去掉关系型数据库的关系特性;

大数据量,高性能,具有非常高的读写特性;

灵活的数据模型,NOSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。

安装MongoDB

MongoDB官方下载地址:https://www.mongodb.com/download-center/community
我选择的是MSI格式的安装包,下载完成后,安装界面如下图,按照提示进行安装即可。

Windows下MongoDB基本操作详解

MongoDB是以命令行的方式进行操作,如果初学者不习惯这种方式,可以安装MongoDB的可是化工具,我选择的是Robo 3T,官方下载地址:https://robomongo.org/
我选择的是下载exe格式的安装文件,安装界面如下图,按照提示安装即可。

Windows下MongoDB基本操作详解

MongoDB的基本操作

MongoDB的中文版教程地址:

1.创建、查看、删除数据库

查看当前的数据库:db

查看所有的数据库:show dbs

切换数据库:use 数据库名称

删除当前的数据库:db.dropDatabase()

2.创建、查看、删除集合

手动创建集合:db.createCollection(name,options)
参数说明:
name:要创建的集合的名称
option:可选参数

db.createCollection("praite") db.createCollection("praite",{capped:true,size:10})

参数说明:
capped:默认为false,如果设置为true,则创建固定大小的集合,当达到最大值时,会自动覆盖最早的文档。当设置为true时,必须指定size参数。
size:为固定大小的集合指定一个最大值,以字节计。

不手动创建集合:向不存在的集合第一次加入数据时,集合会被自动创建出来。

查看集合:show collectinos

删除集合:db.集合名称.drop()

3.插入数据

语法:db.集合名称.insert(document)

db.pirate.insert({name:"路飞",gender:1,hometown:"风车村",age:19}) db.pirate.insert({_id:"20181126",name:"路飞",gender:1,hometown:"风车村",age:19})

显示结果如下:

Windows下MongoDB基本操作详解

插入文档时,如果不指定_id参数,MongoDB会为文档分配一个唯一的ObjectID,如果_id存在则会报错如下图所示。

Windows下MongoDB基本操作详解

4.保存数据

语法:db.集合名称.save(document)

与insert不同的是,如果文档的_id存在则修改,如果文档的_id不存在则添加,如下图所示。

db.pirate.save({_id:"20181126",name:"山治",gender:0,hometown:"杰尔马66王国",age:21}) db.pirate.save({_id:"2018112601",name:"布鲁克",gender:1,hometown:"西海",age:90})

Windows下MongoDB基本操作详解

5.更新数据

语法:db.集合名称.update(<query>,<update>,{multi:<boolean>})
参数说明:
query:update的查询条件
update:update的对象和一些更新的操作符
multi:可选,默认为false,表示只更新找到的第一条记录,若值为true表示把满足条件的文档全部更新。

db.pirate.update({name:"路飞"},{name:"蒙奇·D·路飞"}) db.pirate.update({name:"索隆"},{$set:{name:"罗罗诺亚·索隆"}}) db.pirate.updata({gender:1},{$set:{gender:0}},{multi:true})

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/fc8df41b428186f02799caec6b6e1d38.html