windows環境下安裝mongodb以及nosql使用

來源:互聯網
上載者:User

http://www.xiaocai.name/emlog/post/35

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檔案,新增幾條記錄並顯示.

view plaincopy to clipboardprint?
  1. $conn = new Mongo("mongodb://admin_miss:miss@localhost/test");  
  2. $db = $conn->test;       //選擇test資料庫    
  3. $collection = $db->xiaocai;  //若此表不存在則會自行建立  
  4. $collection->insert(array('name'=>'aaa','age'=>'21'));  
  5. $collection->insert(array('name'=>'bbb','age'=>'20'));  
  6. $collection->insert(array('name'=>'ccc','age'=>'25'));  
  7.   
  8. $array=array();  
  9. foreach ($collection->find() as $val){  
  10.      $array[]=$val;  
  11. }  
  12. print_r($array);  



將age為20歲的資料name更新為'edit'

view plaincopy to clipboardprint?
  1. $collection->update(array('age'=>20),array('$set'=>array('name'=>'edit')),false);  
  2. //不能寫出$collection->update(array('age'=>20),array('name'=>'edit'),false);  


刪除資料:

view plaincopy to clipboardprint?
  1. $collection->remove(array('age'=>20));  


資料:

view plaincopy to clipboardprint?
  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視覺化檢視:http://www.mongodb.org/display/DOCS/Admin+UIs

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.