開始MongoDB 之旅

來源:互聯網
上載者:User
開始MongoDB 之旅

Luo Weifeng 2011-6-28

環境: Ubuntu 11.04

安裝MongoDB

$sudo apt-get install mongodb

會自動安裝libpcrecpp0 libboost-system1.42.0 libboost-filesystem1.42.0

libboost-program-options1.42.0 libboost-thread1.42.0 xulrunner-2.0-mozjs

mongodb-clients mongodb-server mongodb-dev mongodb 等依賴包。

$ps aux | grep mongod

安裝Python語言驅動

$sudo apt-get install python-setuptools

$sudo easy_install pymongo

配置MongoDB

$sudo vim /etc/mongodb.conf

dbpath=’your datebase path’

logpath=’where to log’

logappend=true

bind_id=127.0.0.1

port=27017

使用Mongo測試資料庫

Mongo是用戶端,Mongod是服務端。下面使用Mongo測試下服務。

root@ubuntu:~# mongo

MongoDB shell version: 1.6.3

Mon Jun 27 19:15:05 *** warning: spider monkey build without utf8 support. consider rebuilding with utf8 support

connecting to: test

>

> db.serverStatus()

輸出參數為json格式有幾個主要的類型:

uptime: 伺服器已耗用時間(秒)

localTime: 伺服器本地時間

mem: 伺服器記憶體資訊

connections: 當前串連數

opcounters: 操作統計

查看所有資料庫:

> show dbs

admin

local

可以看出最初的時候只有 admin local test三個資料庫,test在使用,這裡沒有顯示出來。

切換資料庫

>use admin

switched to db admin

>db.stats()

使用WEB測試資料庫

訪問27017

根據要求再訪問 27017 + 1000 = 28017

可以看到一個很完整的管理頁面,顯然不如CouchDB的漂亮,呵呵。

完整測試建立資料庫

MongoDB沒有建立資料庫的命令,可以使用use dbname進行切換,use可以切換到不存在的資料庫,當有資料寫入的時候就會建立資料庫。

root@ubuntu:~# mongo

>use mytestdb

建立Collection

進入資料庫建立coolection資料庫才算建立完成。使用

db.createCollection("mytestdb ", {capped:true, size:10000}) 單位是kb

或者db.runCommand( {createCollection:" mytestdb ", capped:true, size:100000} )

capped參數是建立固定大小的資料庫檔案,為了保證效率,mongo會在建立collection的時候佔用磁碟空間,防止片段。

> db.createCollection("mytestdb ", {capped:true, size:10000})

> show collections

mytestdb

建立文檔

>db. mytestdb.insert({name:'xiaowanzi',age:8})

樣本查詢

操作符

SQL

Mongo

*

Select * from mytestdb

db.mytestdb.find()

Column

Select name,age from mytestdb

db.mytestdb.find({},{name:1,age:1})

Where *

Select * from mytestdb where age=24

db.mytestdb.find({age:24})

Column where

Select name,age from mytestdb where age=24

db.mytestdb.find({age:24},{name:1,age:1})

>&gt

Select * from mytestdb where age>20

db.mytestdb.find({‘age’:{&gt:20}})

Like

Select * from mytestdb where name like ‘wang%’

db.mytestdb.find({name:/^wangfan/})

Select * from mytestdb where name like ‘%wang%’

db.mytestdb.find({name:/wangfan/})

Order

SELECT * FROM mytestdb ORDER BY name DESC

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

> db.mytestdb.find()

{ "_id" : ObjectId("4e093ff90edf95f31cbc7c29"), "name" : "xiaowanzi", "age" : 8 }

建立索引

使用ensureIndex來建立索引

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

db.runCommand({dropIndexes:'foo', index : '*'})

這裡的1是正序,-1是倒序

刪除索引

db.collection.dropIndexes();刪除所有的索引

db. mytestdb.dropIndexes({name:1});

db.runCommand({dropIndexes:'wfcoll', index : {name:1}})

我們在name欄位做一個索引,在age上做個負索引,如下:

>db.mytestdb.ensureIndex({name:1})

>db.mytestdb.ensureIndex({age:-1})

使用Python測試

$python

>>> import pymongo

>>> conn = pymongo.Connection(host="localhost",port=27017)

>>> db=conn.mytestdb

>>> for user in db.wfcoll.find({}):

... repr(user)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.