MongoDb是不错的NoSQL数据库之一,NoSQL 的意思是Not Only SQL,比关系型数据库MySQL、SQL Server等更易于扩展,更多的应用于海量数据的存储,且数据可以弹性跨LAN、WAN扩展,因而更适于cloud的环境中。最近开始的一个项目需要用到MongoDB,这里小试牛刀,在本机上安装测试一下。
MongoDB可以从官网上下载, 下载完后解压缩到某个目录,比如C:\MongoDB。要运行MongoDB,首先创建两个目录:
C:\MongoDB\data 用于存储数据
C:\MongoDB\log 用于存储日志
然后进入到命令行:
C:\MongoDB\bin>mongod.exe --dbpath c:\mongodb\data
服务器即可启动。
把MongoDB安装为windows服务,命令行搞定:
md C:\mongodb\log
echo logpath=C:\mongodb\log\mongo.log > C:\mongodb\mongod.cfg
C:\mongodb\bin\mongod.exe --config C:\mongodb\mongod.cfg --install
net start MongoDB
然后再开一个cmd窗口,运行mongo,连接到该服务器:
C:\>cd MongoDB
C:\MongoDB>cd bin
C:\MongoDB\bin>mongo
MongoDB shell version: 2.4.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
MongoDB这样的NoSQL和常见的关系型数据库不一样,他没有固定的结构,而是是文档的形式保存的,下面是一个测试例子:
> db.test.save({a:1}); //在test表(暂时这么说)中保存一条记录 a = 1
> db.test.find(); // 查找所有记录
{ "_id" : ObjectId("517b4b3823c489619d958d66"), "a" : 1 }
>
再增加几条记录,注意这些新增的记录中有多了几个字段:
> db.test.save({name:'lisi', score: 87, grade : 'good' });
> db.test.save({name:'wangwu', score: 61, grade : 'pass' });
> db.test.find();
{ "_id" : ObjectId("517b4b3823c489619d958d66"), "a" : 1 }
{ "_id" : ObjectId("517b4eba23c489619d958d67"), "name" : "zhang san", "score" :
93 }
{ "_id" : ObjectId("517b4f3523c489619d958d68"), "name" : "lisi", "score" : 87, "
grade" : "good" }
{ "_id" : ObjectId("517b4f5023c489619d958d69"), "name" : "wangwu", "score" : 61,
"grade" : "pass" }
>
可以看出MongoDB的使用是非常灵活的。具体的用法下来再研究。