mongodb 数据库操作详解--创建,切换,删除

mongodb安装就不说了,请参考:centos yum 安装 mongodb 以及php扩展

一,创建,切换,删除数据库

[root@localhost zhangy]# mongo
MongoDB shell version: 2.4.6
connecting to: tank
> use test      //创建 or 切换数据库
switched to db test
> db.dropDatabase()  //删除数据库
{ "dropped" : "test", "ok" : 1 }

二,php创建,切换,删除数据库

1,切换数据库

$mongo = new Mongo();
$db = $mongo->selectDB('test');  //切换数据库

2,创建数据库

$mongo = new Mongo();
$db = $mongo->selectDB('test');
$users = $db->createCollection("users"); 

$alldb = $mongo->listDBs(); //列出所有数据库
print_r($alldb);      //可以看到db创建成功了

在这里要注意一下,如果你不创建一个collection(根关系型数据库的表基本上是一样的),是创建不了数据库的。

3,删除数据库

$mongo = new Mongo();
$db = $mongo->selectDB('test');
$db->drop();

三,小节

这篇文章很简单吧,哈哈,不想在一篇文章里面写太多的东西,折开来写,看的更清楚一点,更细一点。
在这儿要提一下,mongodb命令下的帮助,这个对于命令行操作很有帮助。

1,db的帮助

db.AddUser(username,password) 添加用户
db.auth(usrename,password)   设置数据库连接验证
db.cloneDataBase(fromhost)   从目标服务器克隆一个数据库
db.commandHelp(name)      returns the help for the command
db.copyDatabase(fromdb,todb,fromhost) 复制数据库fromdb---源数据库名称,todb---目标数据库名称,fromhost---源数据库服务器地址
db.createCollection(name,{size:3333,capped:333,max:88888}) 创建一个数据集,相当于一个表
db.currentOp()         取消当前库的当前操作
db.dropDataBase()       删除当前数据库
db.eval(func,args)       run code server-side
db.getCollection(cname)    取得一个数据集合,同用法:db['cname'] or
db.getCollenctionNames()    取得所有数据集合的名称列表
db.getLastError()       返回最后一个错误的提示消息
db.getLastErrorObj()      返回最后一个错误的对象
db.getMongo()         取得当前服务器的连接对象get the server
db.getMondo().setSlaveOk()   allow this connection to read from then nonmaster membr of a replica pair
db.getName()          返回当操作数据库的名称
db.getPrevError()       返回上一个错误对象
db.getProfilingLevel()     获取profile level
db.getReplicationInfo()    获得重复的数据
db.getSisterDB(name)      get the db at the same server as this onew
db.killOp()          停止(杀死)在当前库的当前操作
db.printCollectionStats()   返回当前库的数据集状态
db.printReplicationInfo()    打印主数据库的复制状态信息
db.printSlaveReplicationInfo()    打印从数据库的复制状态信息
db.printShardingStatus()    返回当前数据库是否为共享数据库
db.removeUser(username)    删除用户
db.repairDatabase()      修复当前数据库
db.resetError()
db.runCommand(cmdObj)     run a database command. if cmdObj is a string, turns it into {cmdObj:1}
db.setProfilingLevel(level)  设置profile level 0=off,1=slow,2=all
db.shutdownServer()      关闭当前服务程序
db.version()          返回当前程序的版本信息

2,表的帮助,格式,db.表名.help()

db.test.find({id:10})     返回test数据集ID=10的数据集
db.test.find({id:10}).count() 返回test数据集ID=10的数据总数
db.test.find({id:10}).limit(2) 返回test数据集ID=10的数据集从第二条开始的数据集
db.test.find({id:10}).skip(8) 返回test数据集ID=10的数据集从0到第八条的数据集
db.test.find({id:10}).limit(2).skip(8) 返回test数据集ID=1=的数据集从第二条到第八条的数据
db.test.find({id:10}).sort()  返回test数据集ID=10的排序数据集
db.test.findOne([query])    返回符合条件的一条数据
db.test.getDB()        返回此数据集所属的数据库名称
db.test.getIndexes()      返回些数据集的索引信息
db.test.group({key:...,initial:...,reduce:...[,cond:...]})  返回分组信息
db.test.mapReduce(mayFunction,reduceFunction,<optional params>) 这个有点像存储过程
db.test.remove(query)           在数据集中删除一条数据
db.test.renameCollection(newName)     重命名些数据集名称
db.test.save(obj)             往数据集中插入一条数据
db.test.stats()              返回此数据集的状态
db.test.storageSize()           返回此数据集的存储大小
db.test.totalIndexSize()          返回此数据集的索引文件大小
db.test.totalSize()            返回些数据集的总大小
db.test.update(query,object[,upsert_bool]) 在此数据集中更新一条数据
db.test.validate()             验证此数据集
db.test.getShardVersion()         返回数据集共享版本号
(0)

相关推荐

  • MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存在system.indexes 中,且默认总是为_id创建索引,它的索引使用基本和MySQL 等关系型数据库一样.其实可以这样说说,索引是凌驾于数据存储系统之上的另一层系统,所以各种结构迥异的存储都有相同或相似的索引实现及使用接口并不足为 奇. 1.基础索引 在字段age 上创建索引,1(升序);-1(降序): db.users.ensureIndex({age:1}) _id 是创建表的时候自动创建的索引,此索引是不能够删除的.当

  • Mongodb 删除添加分片与非分片表维护

    MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 一.如何移除分片 1.确认balancer已经开启 mongos> sh.getBalancerState() true 2.移除分片 注:在admin db下执行命令. mongos> use admin switched to db admin mon

  • MongoDB快速入门笔记(六)之MongoDB删除文档操作

    MongoDB是一个跨平台,面向文档的数据库,提供高性能,高可用性和易于扩展.MongoDB是工作在集合和文档上一种概念. 文档是一组键值对.文档具有动态模式.动态模式是指,在同一个集合的文件不必具有相同一组集合的文档字段或结构,并且相同的字段可以保持不同类型的数据. db.集合名称.remove({query}, justOne) query:过滤条件,可选 justOne:是否只删除查询到的第一条数据,值为true或者1时,只删除一条数据,默认为false,可选. 准备数据:把_id为1和2

  • mongodb replica set 添加删除节点的2种方法

    一,利用rs.reconfig,来添加,删除节点 1,添加节点 repmore:PRIMARY> config = {_id:"repmore",members:[{_id:0,host:'127.0.0.1:27017',priority :2},{_id:1,host:'127.0.0.1:27018',priority:1}]}; //添加节点 repmore:PRIMARY> rs.reconfig(config); //使配置生效 repmore:PRIMARY&

  • php操作MongoDB基础教程(连接、新增、修改、删除、查询)

    复制代码 代码如下: //连接localhost:27017$conn = new Mongo(); //连接远程主机默认端口$conn = new Mongo('test.com'); //连接远程主机22011端口$conn = new Mongo('test.com:22011'); //MongoDB有用户名密码$conn = new Mongo("mongodb://${username}:${password}@localhost") //MongoDB有用户名密码并指定数

  • MongoDB修改、删除文档的域属性实例

    由于本博使用的博客程序是边开发边使用的,所以开发过程中动态创建了某些现在不需要的属性 MongoDB 是无 Schema 的,不像关系数据库那样列属性定义在表而非记录中,MongoDB 的集合中的每个文档可以拥有各自不同的域属性. MongoDB 中使用 db.collections.update 修改集合中若干文档的域属性,使用 $set 增加域,$unset 删除域. 删除集合中所有文档的一个域 复制代码 代码如下: db.posts.update({}, { $unset: { delet

  • PHP中MongoDB数据库的连接、添加、修改、查询、删除等操作实例

    PHP 扩展mongon.mod.dll下载http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.windows 然后php.ini添加 extension=php_mongo.dll 最后phpinfo() 查找到 表标PHP已经自带了mongo功能,你就可以操作下面的代码(但是你必须有安装mongodb服务器) 一.连接数据库 使用下面的代码创建一个数据库链接 复制代码 代码如下: <?php $conne

  • 详解清除MongoDB所占用的多余的磁盘空间的方法

    首先一点就是mongodb 不会释放已经占用的硬盘空间,即使drop collection也不行,除非drop database.如果一个db曾经有大量的数据一段时间后又删除的话,硬盘空间就是一个问题,如何收回被mongdodb占用的多余空间?方法有两种 1. dump & restore mongodump -d databasename -o /path/to/dump_dir echo 'db.dropDatabase()' | mongo <databasename> mong

  • MongoDB数据库插入、更新和删除操作详解

    一.Insert操作 Insert操作是MongoDB插入数据的基本方法,对目标集合使用Insert操作,会将该文档添加到MongoDB并自动生成相应的ID键.文档结构采用类似JSON的BSON格式.常见的插入操作主要有单条插入和批量插入两种形式.插入时只是简单地将文档存入数据库中,不进行额外的验证,也不会执行代码,所以不存在注入式攻击的可能. 1.单条插入 2.批量插入 MongoDB对批量插入的支持是通过传递多个文档组成的数组到数据库来实现的.由于它插入数据是通过发送TCP请求的,这样只需发

  • Mongodb批量删除gridfs文件实例

    平台有大量的图片已经不用了,数量级达到百万张,差不多100G的空间,放着不管是不是太浪费了? 复制代码 代码如下: db.fs.files.find({filename:/xxx/}).forEach(function(n) {db.fs.files.update({filename:u.filename},{$set:{filename:newname}},false,true)}} //正则批量更改为固定名称,便于删除. mongofiles -port 12345 -d xxx delet

随机推荐