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”})