为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

mongodb的管理

2020-03-08 8页 doc 43KB 2阅读

用户头像

is_977556

暂无简介

举报
mongodb的管理一、mongoDB 数据库系统的安装和管理: 1,下载: 2,解压 mongodb-win32-i386-1.4.0.zip 到 E:\mongodb-win32-i386-1.4.0\,再在其中建立文件夹 data 存放测试数据库用。 3,手工启动 mongoDB Server: 打开一个 DOS 窗口,进入 E:\mongodb-win32-i386-1.4.0\bin 目录,运行命令: E:\mongodb-win32-i386-1.4.0\bin>mongod --dbpath E:\mongodb-win32-i3...
mongodb的管理
一、mongoDB 数据库系统的安装和管理: 1,下载: 2,解压 mongodb-win32-i386-1.4.0.zip 到 E:\mongodb-win32-i386-1.4.0\,再在其中建立文件夹 data 存放测试数据库用。 3,手工启动 mongoDB Server: 打开一个 DOS 窗口,进入 E:\mongodb-win32-i386-1.4.0\bin 目录,运行命令: E:\mongodb-win32-i386-1.4.0\bin>mongod --dbpath E:\mongodb-win32-i386-1.4.0\data 不要关闭该 DOS 窗口。 mongoDB 服务端的默认连接端口是 27017。 4,作为 Windows 服务启动: E:\mongodb-win32-i386-1.4.0\bin\mongod.exe -dbpath E:\mongodb-win32-i386-1.4.0\data -install 注册 Windows service 后,mongoDB 服务端会随 Windows 一起启动。 5,mongoDB 服务端启动后,重新打开一个 DOS 窗口,进入 E:\mongodb-win32-i386-1.4.0\bin 目录,运行命令 mongo.exe,将会 出现下面的信息: E:\mongodb-win32-i386-1.4.0\bin>mongo MongoDB shell version: 1.4.0 url: test connecting to: test type "exit" to exit type "help" for help 二.安装php连接mongo的驱动 可以到这个链接下载驱动 不过要注意php的版本匹配问题,否则启动apache报错。 三.编写php代码测试 blog; $dbqiuqiu = $conn->qiuqiu; //制定结果集(表名:users) $collection = $dbqiuqiu->users; //列出数据库列表 $dbs = $conn->listDBs(); //echo "
";
//print_r($dbs);
//echo "
"; //新增 //$user = array('name' => 'caleng', 'email' => 'admin@admin.com'); //$collection->insert($user); $cursor = $collection->find(); echo "
"; 
foreach($cursor as $k=>$v){
print_r($v);
}
echo "
"; //$collection->remove(array('name'=>'caleng'), array("justOne" => true)); die; //修改 $newdata = array('$set' => array("email" => "test@test.com")); $collection->update(array("name" => "caleng"), $newdata); //查找 $cursor = $collection->find(); echo "
";
foreach($cursor as $k=>$v){
print_r($v);
}

echo "
"; //查找一条 $user = $collection->findOne(array('name' => 'caleng'), array('email')); echo "
";
print_r($user);
echo "
"; //删除 $collection->remove(array('name'=>'caleng'), array("justOne" => true)); CREATE TABLE USERS (a Number, b Number) Implicit or useMongoDB::createCollection(). INSERT INTO USERS VALUES(1,1) $db->users->insert(array("a" => 1, "b" => 1)); SELECT a,b FROM users $db->users->find(array(), array("a" => 1, "b" => 1)); SELECT * FROM users WHERE age=33 $db->users->find(array("age" => 33)); SELECT a,b FROM users WHERE age=33 $db->users->find(array("age" => 33), array("a" => 1, "b" => 1)); SELECT a,b FROM users WHERE age=33 $db->users->find(array("age" => 33), array("a" => 1, "b" => 1)); SELECT a,b FROM users WHERE age=33 ORDER BY name $db->users->find(array("age" => 33), array("a" => 1, "b" => 1))->sort(array("name" => 1)); SELECT * FROM users WHERE age>33 $db->users->find(array("age" => array('$gt' => 33))); SELECT * FROM users WHERE age<33 $db->users->find(array("age" => array('$lt' => 33))); SELECT * FROM users WHERE name LIKE "%Joe%" $db->users->find(array("name" => new MongoRegex("/Joe/"))); SELECT * FROM users WHERE name LIKE "Joe%" $db->users->find(array("name" => new MongoRegex("/^Joe/"))); SELECT * FROM users WHERE age>33 AND age<=40 $db->users->find(array("age" => array('$gt' => 33, '$lte' => 40))); SELECT * FROM users ORDER BY name DESC $db->users->find()->sort(array("name" => -1)); CREATE INDEX myindexname ON users(name) $db->users->ensureIndex(array("name" => 1)); CREATE INDEX myindexname ON users(name,ts DESC) $db->users->ensureIndex(array("name" => 1, "ts" => -1)); SELECT * FROM users WHERE a=1 and b='q' $db->users->find(array("a" => 1, "b" => "q")); SELECT * FROM users LIMIT 10 SKIP 20 $db->users->find()->limit(10)->skip(20); SELECT * FROM users WHERE a=1 or b=2 $db->users->find(array('$or' => array(array("a" => 1), array("b" => 2)))); SELECT * FROM users LIMIT 1 $db->users->find()->limit(1); EXPLAIN SELECT * FROM users WHERE z=3 $db->users->find(array("z" => 3))->explain() SELECT DISTINCT last_name FROM users $db->command(array("distinct" => "users", "key" => "last_name")); SELECT COUNT(*y) FROM users $db->users->count(); SELECT COUNT(*y) FROM users where AGE > 30 $db->users->find(array("age" => array('$gt' => 30)))->count(); SELECT COUNT(AGE) from users $db->users->find(array("age" => array('$exists' => true)))->count(); UPDATE users SET a=1 WHERE b='q' $db->users->update(array("b" => "q"), array('$set' => array("a" => 1))); UPDATE users SET a=a+2 WHERE b='q' $db->users->update(array("b" => "q"), array('$inc => array("a" => 2))); DELETE FROM users WHERE z="abc" $db->users->remove(array("z" => "abc"));     ?> 对于mongo的类的使用可以参考,最新版php手册,下载链接 关于 mongodb 的权限问题 MongoDB已经使用很长一段时间了,基于MongoDB的数据存储也一直没有使用到权限访问(MongoDB默认设置为无权限访问限制),今天特地花了一点时间研究了一下,研究成果如下: 注:研究成果基于Windows平台 MongoDB在本机安装部署好后 1. 输入命令:show dbs,你会发现它内置有两个数据库,一个名为admin,一个名为local。local好像没啥用,如果哪位在使用过程中发现了这个local表的用途,希望能够留言提醒,那我们就专心来说说admin表 2. 输入命令:use admin,你会发现该DB下包含了一个system.user表,呵呵,没错,这个表就等同于MsSql中的用户表,用来存放超级管理员的,那我们就往它里面添加一个超级管理员试试看 3. 输入命令:db.addUser('sa','sa'),这里我添加一个超级管理员用户,username为sa,password也为sa,即然我们添加了超级管理员,那咱们就来测试下,看看咱们再次连接MongoDB需不需要提示输入用户名、密码,我们先退出来(ctrl+c) 4. 输入命令:use admin 5. 输入命令:show collections,查看该库下所有的表,你会发现,MongoDB并没有提示你输入用户名、密码,那就奇怪了,这是怎么回事呢?在文章最开始提到了, MongoDB默认设置为无权限访问限制,即然这样,那我们就先把它设置成为需要权限访问限制,咱们再看看效果,怎么设置呢? 6. 在注册表中,找到MongoDB的节点,在它的ImgPath中,我们修改一下,加入 -auth,如下所示: "D:\Program Files\mongodb\bin\mongod" -dbpath e:\work\data\mongodb\db -logpath e:\work\data\mongodb\log -auth -service 7. 输入命令:use admin 8. 输入命令:show collections,呵呵,我们发现无法查看该库下的表了,提示:"$err" : "unauthorized db:admin lock type:-1 client:127.0.0.1",很明显,提示没有权限,看来关键就在于这里,我们在启动MongoDB时,需要加上-auth参数,这样我们设置的权限才能生效,好,接下来我们使用刚刚之前设置的用户名、密码来访问 9. 输入命令:db.auth('sa','sa'),输出一个结果值为1,说明这个用户匹配上了,如果用户名、密码不对,会输入0 10. 输入命令:show collections,呵呵,结果出来了,到这里,权限设置还只讲到一多半,接着往下讲,我们先退出来(ctrl+c) 11. 输入命令:mongo testDB,我们尝试连接一个新的库(无论这个库是否存在,如果不存在,往该库中添加数据,会默认创建该库),然后,我们想看看该库中的表 12. 输入命令:show collections,好家伙,没权限,我们输入上面创建的用户名、密码 13. 输入命令:db.auth('sa','sa'),输入结果0,用户不存在,这下有人可能就不明白了,刚刚前面才创建,怎么会不存在呢?原因在于:当我们单独访问MongoDB的数据库时,需要权限访问的情况下,用户名密码并非超级管理员,而是该库的system.user表中的用户,注意,我这里说的是单独访问的情况,什么是不单独访问的情况呢?接下来再讲,现在咋办,没权限,那我们就尝试给库的system.user表中添加用户 14. 输入命令:db.addUser('test','111111'),哇靠,仍然提示没有权限,这可咋办,新的数据库使用超级管理员也无法访问,创建用户也没有权限,呵呵,别急,即然设定了超级管理员用户,那它就一定有权限访问所有的库
/
本文档为【mongodb的管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索