mongodb在我這個C#下手眼中-01初識

雖然不是技術大牛,可是組長推薦看一下,並且咱們正在作的項目,相似於資源中心,牽扯到各類怪異數據類型不一樣分庫,因此至今都是採用這種方式:
①MainData表存全部值,變化最大的分庫數據用json存儲
②json全部的字段都對應着一個index表,用於索引
③一個metadata表存儲全部可能的json字段
④若是字段是選擇類型的值,則由一個新表儲存mongodb

從這個框架看來,的確不錯,可是問題就在於json和其餘表的配合上,好比插入、修改、更新,會比較瘋狂的……shell

既然數據的人類可識別反序列化方式是兩種,也就是xml和json,並且mongodb的方式也相似於這個,咱們就能夠今後數據庫下手了。數據庫


 

首先提到它的windows版本和安裝相關的,既然說到數據庫,就不得不說起mongo的多平臺版本,真的和微軟是反調,不過隨之而來的問題也來了,那就是微軟只關注本身的平臺,因此本身作得東西確定很好用。那mongo的操做界面是什麼呢?很惋惜官方提供的shell只有命令行,至今尚未正式推出一個十分好用的UI,因此咱們只能藉助於第三方。json

先從官方網站下載mongo:http://mongodb.org/
我此時用的版本是3.0。找個地方安裝,這個過程很快,固然數據庫這東西仍是推薦64位系統,可能在win7下須要更新一個補丁,後期版本可能會有變更。
以後你會發現安裝主目錄會多出不少命令行工具,這都是代碼編寫人員的最愛啊……雖然我對本身的打字並無信心windows

最重要的就是mongod.exe服務和mongo.exe操做端,固然其餘的好比監視工具導入導出工具也是做爲數據庫管理人員必備的,因此這個目錄裏的東西想用好,你得學習一些命令行的知識,好比cmd,好比系統環境變量,讓你啓動他們更快速。服務器

那,如何啓動呢?mongodb的主要的啓動方式是經過讀取config配置文件,藉助mongod宿主啓動一個服務端,具體的config配置能夠去手冊查看,很詳細,也很複雜,下面我發出一個比較簡單的配置,這是一個YAML配置,是mongo支持的第二種方式,也是新的方式:框架

systemLog:
 destination: file
###日誌存儲位置
 path: C:\data\mongodb_simple\log/mongod.log
 logAppend: true
storage:
##journal配置
 journal:
  enabled: true
##數據文件存儲位置
 dbPath: C:\data\mongodb_simple\data
##是否一個庫一個文件夾
 directoryPerDB: true
##數據引擎
 engine: wiredTiger
##WT引擎配置
 wiredTiger:
  engineConfig:
##WT最大使用cache(根據服務器實際狀況調節)
   cacheSizeGB: 4
##是否將索引也按數據庫名單獨存儲
   directoryForIndexes: true
##表壓縮配置
  collectionConfig:
   blockCompressor: zlib
##索引配置
  indexConfig:
   prefixCompression: true
##端口配置
net:
 port: 27017

接下來就是啓動了,這裏我用的絕對路徑,看起來也比較直觀,就是給程序一個參數-f:函數

"C:\Program Files\MongoDB\Server\3.0\bin\mongod.exe" -f "C:\data\mongodb_simple\conf\simple1.conf"

ok,若是數據庫沒法啓動,你能夠先啓動cmd,在命令行裏執行一次這段,看看返回的提示是什麼,這是最簡單直觀的方式了。下面咱們嘗試一下如何用簡單的shell提供程序操做數據庫。簡單的啓動一下mongo.exe,鏈接至數據庫:工具

C:\Users\zhouzhi>"C:\Program Files\MongoDB\Server\3.0\bin\mongo.exe"
2015-09-30T14:23:39.621+0800 I CONTROL  Hotfix KB2731284 or later update is installed, no need to zero-out data files
MongoDB shell version: 3.0.1
connecting to: test
>

這裏我直接執行了mongo.exe,沒有附加任何參數,直連localhost:27017的默認位置,看到它在鏈接成功後也自動跳轉到test庫下,那咱們看一下這個數據庫存在幾個庫:學習

> show dbs
local  0.000GB
test   0.000GB
>

mongo.exe常常被稱爲shell,它以JavaScript爲主,附加的一些自定義爲輔,構成的一套命令腳本,show dbs 這個內置命令,就顯示出了含有的庫,固然若是你從未操做過的話是不會存在庫的。
接下來我進入一個庫,並插入一條記錄:

connecting to: test
> show dbs
local  0.000GB
test   0.000GB
> use text
switched to db text
> db.MainData.insert({name:'3tai',age:25,url:'http://www.cnblogs.com/3Tai/',time:new Date()})
WriteResult({ "nInserted" : 1 })
>

咱們在插入時,使用的是JavaScript的基本寫法,這裏要注意的是字符串、數字、時間,有這幾個不一樣的類型,執行後提示有一處改動,下面咱們查看一下剛纔插入的文檔,這裏使用最簡單直接的所有檢索:

> db.MainData.find().pretty()
{
        "_id" : ObjectId("560b83be22f39ad2d6004365"),
        "name" : "3tai",
        "age" : 25,
        "url" : "http://www.cnblogs.com/3Tai/",
        "time" : ISODate("2015-09-30T06:39:58.788Z")
}
>

使用find函數,能夠獲取結果,後面的pretty函數,能夠格式化結果,是屬於優化輸出效果的。至此,咱們已經成功運行了mongodb,下一次咱們和C#接軌

相關文章
相關標籤/搜索