mongodb是一个高性能的 开元 无模式 的文档型数据库,是当前nosql中比较火的一种
传统的关系型数据库一般有数据库(datebase),表(table),记录(record)三个层次的概念组成的,mongodb是由数据库(database),集合(collection)文档对象(document)三个层次组成的。mongodb对于关系型数据库里面的表,但是没有行和列的概念
它的特点是:高性能 易部署 存储数据非常的方便
1)面向集合存储,易存储对象类型的数据
2) 模式是自由的,支持动态查询
3)支持完全索引,包含内部对象 支持查询
4) 支持复制和故障恢复
5)使用高效的二进制数据存储,包括大型对象(如视频等)
6)自动处理碎片,以支持云计算层次的扩展性
7)文件存储的格式为BSON(json格式的扩展)
下面说一下这个mongodb的安装和使用的基本操作:
注意:在下面说的一些命令都是对大小写敏感的
而且一定要注意,如果表中的数据都带引号的话(不管是单引还是双引),我们在删除,查询,修改的时候,都要按照表的格式中的数据来进行
在mongodb中没有
在mongodb中
怎样建立mongodb的服务?(在win7环境下)
1.首先下载mongodb的压缩文件,然后解压到一个文件夹,假设是在D:/mongodb文件夹下,然后将加压后的文件中的bin目录下的所有exe文件放到D:/mongodb下
2.启动cmd的窗口:进入到该目录下,然后使用mongod.exe
3.然后使用netstat
每次起动这个mongodb,我们都要敲这个指令,挺麻烦的,所以我们建立一个.bat
4.连接上以后,我们然后双击mongo.exe文件,即可使用这个客户端。
下面是使用这个客户端的一些基本操作命令:
客户端的一些基本的指令:
Db:代表的是当前的数据库
Show
Show
添加记录
1.
var
db.user.insert(user);
2.
3.
var
db.user.insert(blog);
4.
也就是说不能一下子插入两条数据进去,只能分开来进行添加
注意:要用过程,通过还是一个集合中只保存数据类型相同的数据
查询记录
db.user.findOne()
db.user.find()
条件查询:
查询出年龄等于10岁所有记录
db.user.find(
查询出年龄等于10岁并且姓名是“tom”所有记录
db.user.find(
Mongodb中的限制查询,排序,记录数(可用于分页的功能)
限制查询的功能:(对应的sql语句)
1.db.users.find().limit(10)---------->select
Skip()
2.查找总的记录数:
Db.users.find({‘name’:’zhangsan’}).count()------->selec
3.对相应的记录进行排序:
Db.users.find().sort({‘age’:-1})------>select
Db.users.find().sort({‘age’:1})-------->select
注意:1
4.还有一个查询功能:
5.查询带有范围的数据:
修改记录
修改Tom年龄为20?
var
u.age
db.user.save(u);
上面的这种做法也是错误的
错误:
db.user.update(
正确:
var
u.age
db.user.update({“username”:”Tom”}
还可以这样的更改数据:
Db.users.update({‘name’:’zhangsan’},{‘$set’:{‘age’:’15’}})
删除记录
删除所有的记录:
db.user.remove();
删除age=30的记录
db.user.remove({“age”:30})
删除年龄小于20岁的记录
Db.users.remove({‘age’:{$lt:’20’}})
上面的$lt也是可以变换的,例如:$gt
再删除的时候,如果添加的时候,数据是有引号的,则在删除的时候,也是必须加上引号的
寻求帮助
系统级帮助:
数据库级:
集合级:
函数级:db.user.insert
Php与mongodb的整合步骤:
1.打开自己的phpinfo()函数,看看自己的php的编译的版本:
2.在网上找php_mongo.dll文件,此文件的类型要和上面的编译的版本是一样的,因此我们找的就是
3.将下载好的这个dll文件放到php/ext
4.在phpinfo()中查看是否有
怎样在php文件中使用mongo这个服务呢?
一个简单的例子:
和在客户端使用的方法是一样的,先new一个对象出来,然后是引用数据库,再然后是表。
注意:表中的数据是要以数组的形式传递的。
上面的这个例子是mongo的一个比较简单的使用例子。