MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB是NoSQL中的一种,随着越来越多公司产品使用,已经开始逐步取代一些高性能查询的地位了。
它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
面向集合存储,易存储对象类型的数据。
模式自由。
支持动态查询。
支持完全索引,包含内部对象。
支持查询。
支持复制和故障恢复。
使用高效的二进制数据存储,包括大型对象(如视频等)。
自动处理碎片,以支持云计算层次的扩展性
支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
文件存储格式为BSON(一种JSON的扩展)
可通过网络访问
######### 安装过程 ##########
1、去mongodb的官网直接下载,这里我们下载了3.0.3的版本的。
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@master yunwei]
# tar zxf mongodb-linux-x86_64-3.0.3.gz -C /usr/local/
[root@master yunwei]
# cd /usr/local
[root@master
local
]
# ln -s mongodb-linux-x86_64-3.0.3 mongodb
[root@master
local
]
# ll
lrwxrwxrwx 1 root root 26 Jun 15 10:26 mongodb -> mongodb-linux-x86_64-3.0.3
[root@master
local
]
# cd mongodb
[root@master mongodb]
# ll
total 68
drwxr-xr-x 2 root root 4096 Jun 15 10:26 bin
-rw-r--r-- 1 1046 1046 34520 May 12 05:35 GNU-AGPL-3.0
-rw-r--r-- 1 1046 1046 1359 May 12 05:35 README
-rw-r--r-- 1 1046 1046 22660 May 12 05:35 THIRD-PARTY-NOTICES
|
bin下的mongod就是MongoDB的服务端进程,mongo就是其客户端,其它的命令用于MongoDB的其它用途如MongoDB文件导出等。
2、 启动MongoDB、要先建立好MongoDB 存放数据文件和日志文件的目录:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@master mongodb]
# pwd
/mysqldata/mongodb
[root@master mongodb]
# ll
total 8
drwxr-xr-x 2 root root 4096 Jun 15 14:27 db
# 存放db数据的文件
drwxr-xr-x 2 root root 4096 Jun 15 14:28 log
# 存放mongodb的日志文件
[root@master mongodb]
# cd log
[root@master log]
# pwd
/mysqldata/mongodb/log
[root@master log]
# ll
total 4
-rw-r--r-- 1 root root 2440 Jun 15 15:06 mongodb.log
-rw-r--r-- 1 root root 0 Jun 15 15:05 mongodb.log.2015-06-15T07-06-06
|
3、在MongoDB安装目录下的bin下使用mongod启动MongoDB;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
[root@master mongodb]
# cd bin/
[root@master bin]
# ll
total 116340
-rwxr-xr-x 1 1046 1046 4305912 May 12 05:35 bsondump
-rwxr-xr-x 1 1046 1046 11694552 May 12 05:43 mongo
-rwxr-xr-x 1 1046 1046 22349960 May 12 05:43 mongod
-rwxr-xr-x 1 1046 1046 6199144 May 12 05:35 mongodump
-rwxr-xr-x 1 1046 1046 6001840 May 12 05:35 mongoexport
-rwxr-xr-x 1 1046 1046 5956232 May 12 05:35 mongofiles
-rwxr-xr-x 1 1046 1046 6211952 May 12 05:35 mongoimport
-rwxr-xr-x 1 1046 1046 5686856 May 12 05:35 mongooplog
-rwxr-xr-x 1 1046 1046 22129448 May 12 05:43 mongoperf
-rwxr-xr-x 1 1046 1046 6332464 May 12 05:35 mongorestore
-rwxr-xr-x 1 1046 1046 10552760 May 12 05:43 mongos
-rwxr-xr-x 1 1046 1046 5909928 May 12 05:35 mongostat
-rwxr-xr-x 1 1046 1046 5769944 May 12 05:35 mongotop
[root@master bin]
# ./mongod --help # 可以使用--help查看mongodb的帮助文档
[root@master bin]
# ./mongod --dbpath=/mysqldata/mongodb/db/ --logpath=/mysqldata/mongodb/log/mongodb.log &
[root@master log]
# netstat -lanp | grep 27017
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 2661/.
/mongod
unix 2 [ ACC ] STREAM LISTENING 2420077 2661/.
/mongod
/tmp/mongodb-27017
.sock
|
4、可以看到,已启动成功,现在使用mongo客户端访问一下该数据库,看到下面的就说明启动成功了(如果出现在些警告也没关系的)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
[root@master bin]
# ./mongo
MongoDB shell version: 3.0.3
connecting to:
test
Welcome to the MongoDB shell.
For interactive help,
type
"help"
.
For
more
comprehensive documentation, see
http:
//docs
.mongodb.org/
Questions? Try the support group
http:
//groups
.google.com
/group/mongodb-user
> show dbs;
local
0.078GB
> use
local
;
switched to db
local
> show tables;
startup_log
system.indexes
>
select
* from system.indexes;
2015-06-15T15:23:16.469+0800 E QUERY SyntaxError: Unexpected identifier
>
|
############ MongoDB一些命令的使用 #############
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
[root@master bin]
# ./mongo
MongoDB shell version: 3.0.3
connecting to:
test
Welcome to the MongoDB shell.
> db
#查看所有数据库
local
> show collections
startup_log
system.indexes
> use mydb
#直接use mydb 就可以创建mydb这个数据库
switched to db mydb
> db
mydb
> db.user.save({name:
'Rod'
,age:30})
#新增数据
>
for
(var i=1;i<=10;i++) db.user.save({x:8,y:i})
#遍历插入10条数据
> db.user.
find
()
{
"_id"
: ObjectId(
"557e8101e23d20a4115e493d"
),
"x"
: 8,
"y"
: 1 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e493e"
),
"x"
: 8,
"y"
: 2 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e493f"
),
"x"
: 8,
"y"
: 3 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4940"
),
"x"
: 8,
"y"
: 4 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4941"
),
"x"
: 8,
"y"
: 5 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4942"
),
"x"
: 8,
"y"
: 6 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4943"
),
"x"
: 8,
"y"
: 7 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4944"
),
"x"
: 8,
"y"
: 8 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4945"
),
"x"
: 8,
"y"
: 9 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4946"
),
"x"
: 8,
"y"
: 10 }
> db.user.
find
({y:{$lt:5}})
#查询y小于5的数据
{
"_id"
: ObjectId(
"557e8101e23d20a4115e493d"
),
"x"
: 8,
"y"
: 1 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e493e"
),
"x"
: 8,
"y"
: 2 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e493f"
),
"x"
: 8,
"y"
: 3 }
{
"_id"
: ObjectId(
"557e8101e23d20a4115e4940"
),
"x"
: 8,
"y"
: 4 }
> db.user.findOne()
#只查询第一条数据
{
"_id"
: ObjectId(
"557e8101e23d20a4115e493d"
),
"x"
: 8,
"y"
: 1 }
|
mongodb的各种命令的使用我们可以在网上查一查,都有大量的资料,而且写得很详细。