Nosql之Mongodb 1 安装配置与基本操作

 

mongodb是什么以及其优缺点这里就不介绍了,这几篇文章目的主要是通过实际操作来认识mongodb

 

Mongodb安装以及初始化

1 下载地址:http://www.mongodb.org/

 

2 安装?需要么?超级简单,直接解压就ok啦!!!

 

3 为了方便使用直接将安装目录下的bin文件夹设置到环境变量中去

 

 

4 建立数据库文件存放目录,其实就是建立一个文件夹,比如新建文件夹d:\Mongdb

 

5 建立一个mongodb的日志文件,比如新建一个文件d:\Mongdo\logs\mongodb.log

 

6 我们可以将mongodb注册成一个windows服务,这样我们就可以使用net start和net stop来启动和关闭服务了,在windows的CMD下面输入

mongod --dbpath=d:\Mongodb --logpath=d:\Mongodb\logs\mongodb.log

 

7 启动mongodb服务

net start mongodb

 

 

搞定!!!

 

牛刀小试

我们创建一个叫UserInfo的数据库,并创建users集合(类似于RDBMS中的表),并插入两条记录(Mongodb中叫做document(文档))

 

首先在cmd下面输入mongo,进入客户端命令行,它是一个js解释器,能够支持javascript语法,比如  for(var i=0; i<10; i++) db.users.save({name:”name”+i, age:i});  等等等

 

1)       创建UserInfo数据库

use UserInfo

注:是如果不存在UserInfo这个数据库,它会自动的给我们创建,如果存在当然是直接切换到这个数据库咯,如下图:

 

 

2)       创建两条记录user1和user2并插入到users集合中

user1 = {name:”zhangsan”,  age:24};

user2 = {name:”lisi”, age:23};

db.users.save(user1);

db.users.save(user2);

---------------------------------------------------------------------------------------------------------------------------

也可以这么写

db.users.save({name:”zhangsan”, age:24});

db.users.save({name:”lisi”, age:23});

---------------------------------------------------------------------------------------------------------------------------

注:这里同样我们不需要预先创建users这个集合,在第一次插入数据时会给我们自动创建

 

 

3)       查询刚才我们插入到users集合中的数据

db.users.find();

 

 

说明:

存储在mongdb上的每一个document都会有一个默认的主键_id(如果我们不显示的指定的话), 如上图。这个_id自动是每个文档所必须的,当然它的类型不一定要是上图的ObjectId,不过主键必须是唯一的。

 

Mongodb的增删改

新增记录

文章开始已经介绍过了,这里有一点需要注意的就是

db.insert()和db.save()的区别:

-----------------------------------------------------------------------------------------------------------

insert   永远都是插入一条新记录

save    如果不存在此记录则插入,存在则更新

-----------------------------------------------------------------------------------------------------------

先插入一些数据用于测试

db.users.save({name:"lucy", age:23, country:"canada", gender:0});

db.users.save({name:"joe", age:32, country:"american", gender:1});

db.users.save({name:"fanny", age:22, country:"china", gender:0});

db.users.save({name:"royall", age:44, country:"africa", gender:1});

db.users.save({name:"michael", age:25, country:"china", gender:1});

db.users.save({name:"edgar", age:24, country:"china", gender:1});

db.users.save({name:"apple", age:39, country:"brazil", gender:0});

db.users.save({name:"bruce", age:51, country:"england", gender:1});

db.users.save({name:"lee", age:12, country:"japan", gender:1});

db.users.save({name:"cang", age:31, country:"japan", gender:0});

db.users.save({name:"hebe", age:33, country:"china", gender:0});

db.users.save({name:"pig", age:1, country:"pigHouse", gender:0});

db.users.save({name:"kevin", age:48, country:"china", gender:1});

修改记录

用新的文档替换

db.users.update({“name”:”cang”}, {“name”:”hello”, fav: {“favID”:100, “favName”:”football” } } )

 

只修改某个值

修改name为bruce的country为Australia,age为18

         db.users.update({“name”:"bruce"}, {$set:{“country”:"Australia", “age”:18}})

删除键

         db.users.update({“name”:”bruce”}, {$unset:{“country”:1}})

 

前面的update操作只会更新匹配到的第一条记录,关于update还有两个参数

 

update(query, obj, upsert, multi)

upsert指的是如果不存在则进行插入

multi是指更新匹配到的所有文档

 

删除记录

删除users集合下所有记录

         db.users.remove()

删除指定条件的记录

         db.users.remove({“name”:”apple”})