您的位置:首页 > 数据库 > Mongodb

MongoDB入门学习记录一:基本使用

2017-02-06 00:00 302 查看
摘要: MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

什么是MongoDB ?

MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。

在高负载的情况下,添加更多的节点,可以保证服务器性能。

MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。



为什么要用MongoDB?

无数据结构限制

没有表结构的概念,每条记录可以有完全不同的结构

sql数据库需要先定义表结构再使用,mongodb不需要

完全的索引支持

方便的冗余与扩展

复制集保证数据安全

分片扩展数据规模

MongoDB的适用场景

1、数据缓存

2、高伸缩性

3、弱事务类型的应用

4、大数据量高并发的应用

MongoDB的安装(windows)

下载地址:https://www.mongodb.com/download-center
可以选择下载安装文件或者压缩包直接解压出来,这里我习惯直接下载压缩包解压出来使用。

下载好的压缩包:



解压后的目录结构:




bin目录下两个重要的文件:mongod.exe、mongo.exe。前者是用于启动mongodb服务的,后者用于连接mongodb服务,为了方便在命令行中使用,需要配置环境变量,将bin目录配置到path目录下。



搭建简单的MongoDB服务器

在某个目录下新建以下几个文件夹,这里在F:\mongoDB下新建了三个文件夹分别用来存储配置文件,数据文件和日志文件



,conf目录下新建一个配置文件,编写配置信息。配置相应的端口(mongoDB默认的端口为27017,如果使用默认端口,则无需指定)、数据库目录、日志文件的地址。



启动服务,在命令行窗口下输入:mongod -f F:\mongoDB\conf\mongo.conf,即可根据设置的配置启动服务。启动服务后会在dbpath下生成默认的数据库文件



连接MongoDB

这里讲的是利用mongo.exe进行连接,打开新的命令行窗口,输入mongo命令即链接上了,这里由于没有指定具体连接哪个数据库,因此默认的是链接test数据库。



在此命令窗口下键入相关命令实现对数据库不同的操作。这里先罗列出几个简单的命令:

db:查看当前使用的数据库

show dbs:显示有哪些数据库(如果一个数据库没有数据不会显示)。

use 数据库名:使用哪个数据库,如果没有该数据库,系统在使用到的时候会默认创建这个数据库。

show collections:显示当前数据库下所有的集合(类同于关系数据库的表)。

db.shutdownServer():关闭服务。

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

MongoDB的基本使用

1、插入数据与查询数据

在mongodb中,集合就是数据库的表

写入数据的命令为:db.集合名.insert();



查询数据的命令为:db.集合名.find();如果需要指定查询某些数据,则在find中传入json串代表你要查询的数据。



查询集合有多少条数据:db.集合名.find().count()

分页排序查询数据:db.集合名.find().skip(start).limit(pagesize).sort();



注:这里排序total指定的1代表正序排列,-1位逆序排列

2、修改和删除

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)

参数说明:

query : update的查询条件,类似sql update查询内where后面的。

update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的。在更新的语句加上$set代表只更新指定的字段,其他字段不更新。

upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

writeConcern :可选,抛出异常的级别。



remove() 方法用于更新已存在的文档。语法格式如下:

db.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)

参数说明:

query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档。

writeConcern :(可选)抛出异常的级别。



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



3、创建索引

查看当前集合下的索引:db.product.getIndexes()

创建索引:db.product.ensureIndex();

实例:



注:name后的1代表升序,-1代表倒叙。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MongoDB NoSQL 数据库