MongoDB入门详解
Posted 前端技术博文
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB入门详解相关的知识,希望对你有一定的参考价值。
一、什么是MongoDB
MongoDB是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongoDB是开源,高性能的NoSQL数据库,支持索引、集群、复制和故障转移、各种语言的驱动程序丰富;
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。
MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
二、MongoDB的安装
1、下载MongoDB
2、安装
下载成功后点击msi文件直接next,这里以Windows操作系统为例。
3、环境配置
安装文件里面有两个主要的部分:mongod.exe和mongo.exe,分别为服务器和操作后台。如果要成功运行MongoDB,需要先搭建并运行服务器,其次在保持服务器运行的情况下再打开后台。
由于前期的安装不会生成数据目录,需要自己创建。打开cmd,在D盘创建数据文件夹,如D:\data\db用于存放mongodb的数据文件,也可使用Windows自带的界面在D盘右键创建。
运行cmd,打开安装目录下的bin文件,在bin目录中执行mongod.exe文件。输入如下:
保持之前的cmd窗口,再打开一个cmd窗口来运行mongo.exe,同样打开bin文件,执行mongo.exe,就可以进入MongoDB的Shell界面。
至此,MongoDB安装完毕,然后就可以使用命令行操作数据库了。
4、把MongoDB服务器作为Windows服务运行
将MongoDB服务器安装为Windows服务,可以避免每次使用MongoDB都要开启mongod.exe程序,当mongod.exe被关闭时,mongo.exe 就无法连接到数据库的问题。
1)打开MongoDB的安装目录如“D:\Program Files\MongoDB\Server\3.6\bin”,并在此目录下新建一个mongo.config文件,文件内容如下:
##数据库目录##
dbpath=C:\data\db
##日志输出文件##
logpath=C:\data\log\db.log
2)cmd进入命令行,使用cd切换目录到安装目录,如:cd D:\Program Files\MongoDB\Server\3.6\bin
安装MongoDB服务且指定配置文件,如:mongod --config "D:\Program Files\MongoDB\Server\3.6\bin\mongo.config" --install
3)启动服务
启动服务:net start mongodb
停止服务:net stop mongodb
打开任务管理器可以看到MongoDB已经启动
把MongoDB服务器作为Windows服务运行之后,就不用再启动MongoDB的服务器,直接运行mongo.exe操作后台程序就可以使用。
三、数据库的基本操作
1、基本概念
在MongoDB中基本的概念是文档、集合、数据库。
2、基本操作
创建数据库:
语法:use database_name
示例:use DB_Demo
如果数据库不存在,则创建数据库,否则切换到指定数据库。
要显示刚创建的数据库需要向 数据库插入一些数据。
删除数据库:
语法:db.dropDatabase()
示例:先切换到数据库 DB_Demo,再执行删除操作。(可以使用 db 命令查看当前数据库名,防止误操作)
use DB_Demo
db.dropDatabase()
创建集合:
语法:db.createCollection(name, options)
示例:先切换到数据库 DB_Demo并创建users集合
use DB_Demo
db.createCollection("users")
删除集合:
语法:db.collection.drop()
示例:db.user.drop()
插入文档:
语法:db.collection_name.insert(document)
示例:db.users.insert({name:'zhangsan',age:18})
语法:db.collection_name.save(document)
示例:db.users.save({name:'lisisi',age:16})
说明:insert和save方法都可以插入数据,当默认的“_id”值已存在时,调用insert方法插入会报错;而save方法不会,会更新相同的_id所在行数据的信息。
语法:db.collection_name.insertOne(document)
说明:向指定集合中插入一条文档数据
语法:db.collection_name.insertMany(document)
说明:向指定集合中插入多条文档数据(注意是数组)
示例:db.users.insertMany([{name:'wangsansan',age:'22'},{name:'zhanglili',age:21}])
删除文档:
语法:db.collection_name.remove(条件)
示例: db.users.remove({'name':'zhangsan'})
语法:db.collection_name.deleteOne(条件)
说明: 删除 指定条件的一个文档
语法:db.collection_name.deleteMany(条件)
说明: 删除 指定条件的全部文档
修改文档:
语法:db.collection_name.update({"条件字段名":"字段值"},{$set:{"要修改的字段名":"修改后的字段值"}})
说明: 只修改第一条发现的文档
示例:db.users.update({'name':'zhangsan'},{$set:{'name':'wanger'}})
语法:db.collection_name.update({"条件字段名":"字段值"},{$set:{"要修改的字段名":"修改后的字段值"}},{multi:true});
说明: 修改多条相同的文档,需要设置 multi 参数为 true。
查询文档:
查询集合中所有数据:db.collection_name.find(); 例:db.users.find().pretty()
按条件查询(支持多条件):db.collection_name.find(条件); 例:db.users.find({name:'zhangsan'});
限制数量:db.collection_name.find().limit(数量);
跳过指定数量:db.collection_name.find().skip(数量);
查询第一条(支持条件):db.collection_name.findOne(条件);
查询数量:db.collection_name.find().count();
排序:db.collection_name.find().sort({"字段名":1}); 1:表示升序,-1:表示降序
指定字段返回: db.collection_name.find({},{"字段名":0}); 1:返回 0:不返回
常用命令:
使用 db 命令查看当前数据库名
查看所有数据库,可以使用 show dbs 命令
查看已有集合,可以使用 show collections 命令
find() 方法以非结构化的方式来显示所有文档,语法:db.collection_name.find()
以易读的方式来读取数据使用 pretty() 方法,语法:db.collection_name.find().pretty()
use database_name如果数据库不存在,则创建数据库,否则切换到指定数据库
四、其它注意事项
1、数据库命名规则:
不能是空字符串
不能含有空格
、.、$、/、\和\0(空字符)
应全部小写
最多64字节
2、保留数据库
有一些数据库名是保留的,可以直接访问这些有特殊作用的数据库
admin:’root‘数据库,要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限,一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器
local:这个数据库永远不会被复制,可以用来存储于本地单台服务器的任意集合
config:当mongoDB用于分片设置时,config数据库在内部使用,用于保存分片的相关信息
五、可视化工具GUI
1、MongoDB可视化工具
MongoDB安装完成后会有一个可视化工具,如图,可以点击连接到本地数据库,查看本地的数据库名称,以及创建数据库,删除数据库等操作。
点击连接后会列出当前存在的数据库列表。
2、第三方可视化工具
第二项是一个绿色版,解压后在文件夹中找到exe文件直接运行即可。
运行后连接到本地数据库,右键打开shell脚本编写界面可以执行MongoDB相关命令,执行快捷键F5或Ctrl+Enter。
参考链接:
MongoDB官网:www.mongodb.org
MongoDB中文网:http://www.mongodb.org.cn/
MongoDB安装及将MongoDB服务器作为windows服务运行:http://blog.csdn.net/zpalyq110/article/details/73740260
NodeJS+Express+MongoDB:https://www.cnblogs.com/best/p/6212807.html
以上是关于MongoDB入门详解的主要内容,如果未能解决你的问题,请参考以下文章