我们下载的mongodb是社区版的,已经帮我们编译好,因此不需要我们在此编译,我们只需将下载的文件解压后移动到安装目录即可,比如:移动到/usr/local/mongodb。
./bin/mongod –dbpath=/usr/local/mongodb/data/ –logpath=/usr/local/mongodb/logs/log
启动mongodb到cd /usr/local/mongodb/bin
./mongod
./mongo
show dbs / show databases 查看数据库
show tables / show collections 查看表的列表
use tableName 切换数据库
db.help() 查看命令帮助
db.tableName.drop() 删除tableName表,tableName为表名称
db.dropDatabase() 删除当前切换到的数据库
db.createCollection(tableName) 创建表
隐式添加:
如果下级结构添加了,那么上级结构自动也被添加
比如:我在一个不存在的数据库下创建了一张表,那么这个数据库会被自动创建。数据表也支持隐式创建
插入数据
db.tableName.insert()
例1:往user表插入一条
db.user.insert({‘name’:’shusheng’})
db.user.insertOne({‘name’:’shusheng’})
例2:往user表插入多条
db.user.insert([{‘name’:’郭昌松’,’age’:20},{‘name’:’李志友’,’girl’:[‘李文斌,李志光’]}])
db.user.insertMany([{‘name’:’郭昌松’,’age’:20},{‘name’:’李志友’,’girl’:[‘李文斌,李志光’]}])
查询数据
db.tableName.find(where)
where:查询条件,可选
操作 格式 范例 RDBMS中的类似语句
等于 {:} db.col.find({“by”:”菜鸟教程”}).pretty() where by = ‘菜鸟教程’
小于 {:{lt:<value>}} db.col.find({"likes":{
lt:<value>}} db.col.find({"likes":{
lt:50}}).pretty() where likes < 50
小于或等于 {:{lte:<value>}} db.col.find({"likes":{
lte:<value>}} db.col.find({"likes":{
lte:50}}).pretty() where likes <= 50
大于 {:{gt:<value>}} db.col.find({"likes":{
gt:<value>}} db.col.find({"likes":{
gt:50}}).pretty() where likes > 50
大于或等于 {:{gte:<value>}} db.col.find({"likes":{
gte:<value>}} db.col.find({"likes":{
gte:50}}).pretty() where likes >= 50
不等于 {:{ne:<value>}} db.col.find({"likes":{
ne:<value>}} db.col.find({"likes":{
ne:50}}).pretty() where likes != 50
例1:db.member.find({name:’baba’})
查询name=’baba’的记录
例2:db.member.find({name:’baba’,age:30})
查询name=’baba’并且age=30的记录
例3:db.member.find({age:{$lt:26}})
查询age小于26的记录
例4:db.member.find({age:{
lt:26,
l
t
:
26
,
gt:20}})
查询age大于20小于26的记录
附:以格式化后的结构展示查询结果
db.tableName.find(where).pretty()
删除数据
db.member.remove(where,justOne)
where:删除的条件表达式
justOne:当符合条件的文档有多条时,为true只删除一条记录,为false表示全部删除,默认为false
更新数据
基本语法:db.tableName.update(where,data,upsert,multi)
where:条件表达式(更新的条件)
data:要更新的数据
upsert:为true时,表示如果根据查询条件表达式找不到记录,则将准备更新的数据插入到表中作为一条新记录,默认为false
multi:默认为false,表示只更新符合条件的一条记录,如果为true时,表示更新所有的符合条件的记录,该参数必须在含有$操作下才生效
例子的数据准备:db.member.insert({name:’baba’,age:30,sex:’男’,’money’:999999999})
默认情况下,update会覆盖整个文档(整条记录内容)
例1:db.member.update({name:’baba’},{‘money’:99999999998})
执行完上面的操作,整条记录会变成:{‘money’:99999999998}
只更改部分字段值
db.tableName.update(条件表达式,{set:修改的内容})
例2:db.member.update({name:’baba’},{
set:修改的内容}) 例2:db.member.update({name:’baba’},{
set:{‘money’:99999999998}})
执行完上面的操作,整条记录会变成:{name:’baba’,age:30,sex:’男’,’money’:99999999998}
例3:第三个参数的使用例子
db.member.update({name:’bingbing’},{name:’libingbing’,age:40},true)
如果根据{name:’bingbing’}找不到符合条件的记录,则将{name:’libingbing’,age:40}插入到数据表中作为一条新记录。
例4:第四个参数的使用例子
正确使用方法:db.member.update({name:’小锅’},{$set:{name:’火锅’,age:3}},false,true)
错误使用方法:db.member.update({name:’小锅’},{name:’火锅’,age:3},false,true)
php操作mongodb
扩展地址:http://pecl.php.net/package/mongo
文档:http://php.net/manual/zh/class.mongoclient.php
网友提供:http://www.runoob.com/mongodb/mongodb-php.html
PHP下安装