windows环境下安装mongodb以及nosql使用

2 篇文章 0 订阅

mongoDB(http://www.mongodb.org)是一种 NoSQL 的文档型的数据库管理系统,也就是说不是传统意义上的关系数据库(类似Oracle、MS-SQLServer、MySQL等)。传统意义上的关系数据库,数据是被编码为二进制格式保存在表中的,需要用 SQL 语句去存取。NoSQL 的文档型数据库,比如 mongoDB,就不同了。(官网)

1.安装MongoDB.

下载mongodb-win32-i386-1.4.0.zip文件(地址:http://downloads.mongodb.org/win32/mongodb-win32-i386-1.4.0.zip),将其解压至D:\mongodb目录中.创建D:\mongodb\data目录(用于存放数据库文件).

注:BIN目录中有以下2个文件,mongod.exe即服务器端,mongo.exe客服端(在php中用来连接mongodb它进行查询)

打开一个CMD,进入D:\mongodb\bin 目录,运行mongo.exe文件,出现下面的提示就安装成功了(这样就安装成功了o(╯□╰)o).

MongoDB shell version: 1.6.3
connecting to: test


2.运行MongoDB

首先我们先运行服务端,打开一个CMD,输入d:\mongodb\bin\mongod.exe --dbpath d:\mongodb\data,这时候可以看到以下界面.(不要关掉它,将它注册为系统服务这样就不用每次启动它了).


接着打开一个新的CMD控制台,进入d:\mongodb\bin目录运行mongo.exe文件。



下面就可以开始写代码了..(不载图了..太麻烦o(╯□╰)o)

 > show dbs  ;显示所有数据库(默认连接的是test数据库)

结果:
    admin
    local
    test


> show collections    ;显示当前数据库下的使有表

结果:

system.indexes

system.users

test

user

xc



> db.xiaocai.insert({name:'xiaocai1',age:'21'})    ;向xiaocai表中插入数据(若表不存在则会自动创建)

> db.xiaocai.find()    ;显示xiaocai表中的所有数据

结果:

{ "_id" : ObjectId("4d5cdd0fdf70000000001560"), "name" : "xiaocai1", "age" : "21" }

> db.xiaocai.remove({name:"xiaocai1"})    ;删除name字段为'xiaocai'的数据

> db.xiaocao.find()


下面重点说明一下update

db.collection.update( criteria, objNew, upsert, multi )
criteria : update的查询条件,类似sql update查询内where后面的
objNew   : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert   : 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi    : mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

db.test0.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一条记录
db.test0.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 全更新了
db.test0.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 只加进去了第一条
db.test0.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 全加进去了
db.test0.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true );全更新了
db.test0.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false );只更新了第一条

对应的SQL参考:

select a,b from users where age=33

db.users.find({age:33},{a:1,b:1})

select * from users where age>33 and age<=40

db.users.find({'age':{$gt:33,$lte:40}})

select * from users order by name DESC

db.users.find().sort({name:-1})

create index myindexname on users(name)

db.users.ensureIndex({name:1})

update users set a=1 where b='q'

db.users.update({b: 'q'},{$set:{a:1}},false,true)

delete from users where z='abc'

db.users.remove({ z: 'abc'})


3.PHP操作MongoDB

安装MongoDB PHP扩展,下载地址:http://github.com/mongodb/mongo-php-driver/downloads(apache下载V6,iis下载V9),将解压得到的php_mongo.dll 文件拷贝到 PHP 安装目录下的 ext 目录下。在PHP.INI加入extension = php_mongo.dll;重启apache后可以在phpinfo中找到mongo的信息.


新建一个php文件,新增几条记录并显示.


$conn = new Mongo("mongodb://admin_miss:miss@localhost/test");  
$db = $conn->test;       //选择test数据库    
$collection = $db->xiaocai;  //若此表不存在则会自行创建  
$collection->insert(array('name'=>'aaa','age'=>'21'));  
$collection->insert(array('name'=>'bbb','age'=>'20'));  
$collection->insert(array('name'=>'ccc','age'=>'25'));  
  
$array=array();  
foreach ($collection->find() as $val){  
     $array[]=$val;  
}  
print_r($array);  

将age为20岁的数据name更新为'edit'

  1. $collection->update(array('age'=>20),array('$set'=>array('name'=>'edit')),false);  
  2. //不能写出$collection->update(array('age'=>20),array('name'=>'edit'),false); 
删除数据:

  1. $collection->remove(array('age'=>20)); 
资料:

  1. //连接localhost:27017    
  2. $conn = new Mongo();    
  3. //连接远程主机默认端口    
  4. $conn = new Mongo('test.com');    
  5. //连接远程主机22011端口    
  6. $conn = new Mongo('test.com:22011');    
  7. //MongoDB有用户名密码    
  8. $conn = new Mongo("mongodb://${username}:${password}@localhost")    
  9. //MongoDB有用户名密码并指定数据库blog    
  10. $conn = new Mongo("mongodb://${username}:${password}@localhost/blog");    
  11. //多个服务器    
  12. $conn = new Mongo("mongodb://localhost:27017,localhost:27018");   

http://hi.baidu.com/farmerluo/blog/item/9a23cb13a819bb2fdd540188.html
http://www.searchtb.com/2010/12/a-probe-into-the-mongodb.html
http://www.infoq.com/cn/news/2011/01/nosql-why
http://www.infoq.com/cn/news/2011/01/relation-db-nosql-db

可视化工具:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一部分  NoSQL入门 第1章  NoSQL的概念及适用范围 2 1.1  定义和介绍 3 1.1.1  背景与历史 3 1.1.2  大数据 5 1.1.3  可扩展性 7 1.1.4  MapReduce 8 1.2  面向列的有序存储 9 1.3  键/值存储 11 1.4  文档数据库 14 1.5  图形数据库 15 1.6  小结 16 第2章  NoSQL上手初体验 17 2.1  第一印象——两个简单的例子 17 2.1.1  简单的位置偏好数据集 17 2.1.2  存储汽车品牌和型号数据 22 2.2  使用多种语言 30 2.2.1  MongoDB驱动 30 2.2.2  初识Thrift 33 2.3  小结 34 第3章  NoSQL接口与交互 36 3.1  没了SQL还剩什么 36 3.1.1  存储和访问数据 37 3.1.2  MongoDB数据存储与访问 37 3.1.3  MongoDB数据查询 41 3.1.4  Redis数据存储与访问 43 3.1.5  Redis数据查询 47 3.1.6  HBase数据存储与访问 50 3.1.7  HBase数据查询 52 3.1.8  Apache Cassandra数据存储与访问 54 3.1.9  Apache Cassandra数据查询 55 3.2  NoSQL数据存储的语言绑定 56 3.2.1  Thrift 56 3.2.2  Java 56 3.2.3  Python 58 3.2.4  Ruby 59 3.2.5  PHP 59 3.3  小结 60 第二部分  NoSQL基础 第4章  理解存储架构 62 4.1  使用面向列的数据库 63 4.1.1  使用关系型数据库中的表格和列 63 4.1.2  列数据库对比RDBMS 65 4.1.3  列数据库当做键/值对的嵌套映射表 67 4.1.4  Webtable布局 70 4.2  HBase分布式存储架构 71 4.3  文档存储内部机制 73 4.3.1  用内存映射文件存储数据 74 4.3.2  MongoDB集合和索引使用指南 75 4.3.3  MongoDB的可靠性和耐久性 75 4.3.4  水平扩展 76 4.4  键/值存储Memcached和Redis 78 4.4.1  Memcached的内部结构 78 4.4.2  Redis的内部结构 79 4.5  最终一致性非关系型数据库 80 4.5.1  一致性哈希 81 4.5.2  对象版本 82 4.5.3  闲话协议和提示移交 83 4.6  小结 83 第5章  执行CRUD操作 84 5.1  创建记录 84 5.1.1  在以文档为中心的数据库中创建记录 85 5.1.2  面向列数据库的创建操作 91 5.1.3  键/值映射表的创建操作 93 5.2  访问数据 96 5.2.1  用MongoDB访问文档 96 5.2.2  用HBase访问数据 97 5.2.3  查询Redis 98 5.3  更新和删除数据 98 5.3.1  使用MongoDB、HBase和Redis更新及修改数据 98 5.3.2  有限原子性和事务完整性 99 5.4  小结 100 第6章  查询NoSQL存储 101 6.1  SQL与MongoDB查询功能的相似点 101 6.1.1  加载MovieLens数据 103 6.1.2  MongoDB中的MapReduce 108 6.2  访问HBase等面向列数据库中的数据 111 6.3  查询Redis数据存储 113 6.4  小结 116 第7章  修改数据存储及管理演进 117 7.1  修改文档数据库 117 7.1.1  弱schema的灵活性 120 7.1.2  MongoDB的数据导入与导出 121 7.2  面向列数据库中数据schema的演进 124 7.3  HBase数据导入与导出 125 7.4  键/值存储中的数据演变 126 7.5  小结 126 第8章  数据索引与排序 127 8.1  数据库索引的基本概念 127 8.2  MongoDB的索引与排序 128 8.3  MongoDB里创建和使用索引 131 8.3.1  组合与嵌套键 136 8.3.2  创建唯一索引和稀疏索引 138 8.3.3  基于关键字的搜索和多重键 139 8.4  CouchDB的索引与排序 140 8.5  Apache Cassandra的索引与排序 141 8.6  小结 143 第9章  事务和数据完整性的管理 144 9.1  RDBMS和ACID 144 9.2  分布式ACID系统 147 9.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值