在2011年毕业刚参加工作那会儿,和我一起租房的大学同学的公司就是用MongDb数据库,一直听他说MongDb很牛叉,今天就在本机装上玩玩看。
MongoDB数据库的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
* 面向集合存储,易存储对象类型的数据。
* 模式自由。
* 支持动态查询。
* 支持完全索引,包含内部对象。
* 支持查询。
* 支持复制和故障恢复。
* 使用高效的二进制数据存储,包括大型对象(如视频等)。
* 自动处理碎片,以支持云计算层次的扩展性
* 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
* 文件存储格式为BSON(一种JSON的扩展)
* 可通过网络访问
下载地址:http://www.mongodb.org/downloads
安装很简单随便在网上找个技术博客照抄就行,数据库redis和MongDb都是非关系型数据库(NoSql)和本机的mysql的安装使用是不冲突的。
1.启动MongDb服务(cmd窗口==》快捷键:windows+r):
C:\Users\chb>e:
E:\>cd MongDb
E:\MongDb>cd bin
E:\MongDb\bin>mongo.exe
MongoDB shell version: 2.6.5
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 // 显示所有数据库,==》show databases;
admin (empty)
local 0.078GB
> use local // 选中数据库
switched to db local
> show tables; // 显示该数据库下的所有表(自创的命令)
startup_log
system.indexes
users
> db.users.save({"name":"lecaf"}) // 向表users添加一条name=lecaf的记录,users表不存在MongDb自动创建
WriteResult({ "nInserted" : 1 }) // 添加成功后的提示
> db.users.insert({"name":"chenhaibo","age":"26"})
WriteResult({ "nInserted" : 1 })
> db.users.insert({"name":"chenhaibo0806","age":"27"})
WriteResult({ "nInserted" : 1 })
> db.users.find() // 查找所有记录
{ "_id" : ObjectId("5444b602b0a75fa95741d1dc"), "name" : "lecaf" }
{ "_id" : ObjectId("5444b63cb0a75fa95741d1dd"), "name" : "chenhaibo", "age" : "2
6" }
{ "_id" : ObjectId("5444b66fb0a75fa95741d1de"), "name" : "chenhaibo0806", "age"
: "27" }
> db.users.findOne() // 查找一条记录(默认最先那条)
{ "_id" : ObjectId("5444b602b0a75fa95741d1dc"), "name" : "lecaf" }
> db.users.findone() // MongDb的命令区分大小写的
2014-10-20T15:17:59.835+0800 TypeError: Property 'findone' of object local.users
is not a function
>
> db.users.update({"name":"lecaf"},{"age":"10"}) // 更新记录,前面name是条件,后面age是数据
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.users.find()
{ "_id" : ObjectId("5444b602b0a75fa95741d1dc"), "age" : "10" }
{ "_id" : ObjectId("5444b63cb0a75fa95741d1dd"), "name" : "chenhaibo", "age" : "2
6" }
{ "_id" : ObjectId("5444b66fb0a75fa95741d1de"), "name" : "chenhaibo0806", "age"
: "27" }
> db.users.find().limit(2) // 查找两条记录
{ "_id" : ObjectId("5444b602b0a75fa95741d1dc"), "age" : "10" }
{ "_id" : ObjectId("5444b63cb0a75fa95741d1dd"), "name" : "chenhaibo", "age" : "2
6" }
> db.users.find().count(true) //统计条数
3
> db.users.find({"name":"chenhaibo"}) // 按条件查找
{ "_id" : ObjectId("5444b63cb0a75fa95741d1dd"), "name" : "chenhaibo", "age" : "2
6" }
>
> db.users.find({"age" : {$gt: "25"} }) // 查找年龄大于25岁的,个人觉得 命令之间需要空格。。
{ "_id" : ObjectId("5444b63cb0a75fa95741d1dd"), "name" : "chenhaibo", "age" : "2
6" }
{ "_id" : ObjectId("5444b66fb0a75fa95741d1de"), "name" : "chenhaibo0806", "age"
: "27" }
> db.users.find({"name" : /^chenhaibo.*/i }) // 模糊查询,查询以“chenhaibo”为开头的,i是不区分行的
{ "_id" : ObjectId("5444b63cb0a75fa95741d1dd"), "name" : "chenhaibo", "age" : "2
6" }
{ "_id" : ObjectId("5444b66fb0a75fa95741d1de"), "name" : "chenhaibo0806", "age"
: "27" }
> db.users.find({"name" : /^chenhaibo0806.*/i })
{ "_id" : ObjectId("5444b66fb0a75fa95741d1de"), "name" : "chenhaibo0806", "age"
: "27" }
> db.users.find().sort({ "name" : -1 }) // -1降序,1升序
{ "_id" : ObjectId("5444b66fb0a75fa95741d1de"), "name" : "chenhaibo0806", "age"
: "27" }
{ "_id" : ObjectId("5444b63cb0a75fa95741d1dd"), "name" : "chenhaibo", "age" : "2
6" }
{ "_id" : ObjectId("5444b602b0a75fa95741d1dc"), "age" : "10" }
>
> it // it 去查看更多记录
{ "_id" : ObjectId("54474015b0a75fa95741d1f4"), "age" : "41" }
{ "_id" : ObjectId("54474018b0a75fa95741d1f5"), "age" : "42" }
{ "_id" : ObjectId("5447401bb0a75fa95741d1f6"), "age" : "43" }
{ "_id" : ObjectId("5447401db0a75fa95741d1f7"), "age" : "44" }
{ "_id" : ObjectId("5447401fb0a75fa95741d1f8"), "age" : "45" }
{ "_id" : ObjectId("54474023b0a75fa95741d1f9"), "age" : "46" }
{ "_id" : ObjectId("54474025b0a75fa95741d1fa"), "age" : "47" }
// 总结:个人觉得MongDb很方便,不需要像Mysql那样麻烦建表字段的,拓展性灵活性较强。
未完待续***********