Microsoft DocumentDB 直接兼容 MongoDB


  • 註冊用戶

    前幾天 Microsoft 在 Azure 上開放了 DocumentDB,據說不用更改代碼,就可以直接兼容 MongoDB,不知道有沒有人使用過?用過的感想如何?有沒有案例可以分享?


  • 大中华区MongoDB顾问

    @Tenchi

    DocumentDB是一個基於雲的文檔數據庫(Document Based Database)。 DocumentDB 和 MongoDB之間有很多區別
    1. DocumentDB僅在Microsoft Azure的雲上。 MongoDB可以在內部或雲上(MongoDB Atlas)
    2. 因為它只在Azure雲上運行,通常他們的客戶還需要在Azure部署應用程序層以確保高性能,這意味著整個app + DB在公共雲上運行。
    3. DocumentDB 支持有限的編程語言
    4. MongoDB 有 >2500 企業版客戶,文檔數據庫排名為#1。DocumentDB 用戶有限,文檔數據庫排名#10

    從另一個角度來看,Microsoft也理解文檔數據庫的需求,所以他們必須創建一個類似於MongoDB的產品


  • Lv 1

    DocumentDB 是 Microsoft 設計的一個 NoSQL Database。NoSQL 這幾年大家都聽過見過,MongoDB、Cassandra、HBase、Neo4j 等等都是很出名的 NoSQL,那 Microsoft 推出 DocumentDB 來應戰,而且居然跟 MongoDB 同一掛,都屬於 Document-Based 這個系列,DocumentDB 的過人之處到底在哪裡?

    DocumentDB 比較奸巧的地方,就在於 Document-Based NoSQL,而且跟 MongoDB 採用一樣的 Database、Collection、Document 專有名詞定義,Document 也是以 JSON 格式表示。用過 MongoDB 的人完全沒有障礙,沒用過 MongoDB 的人花個幾分鐘也可以了解個大概。Document-Based NoSQL 這一招,等於全盤收割了 MongoDB 種下的甜美果實。

    DocumentDB 比較特殊的地方,就是用 SQL 語法作為 Query 的介面,而且還加上 Microsoft 最擅長的一招,擁抱與擴充。因為擁抱 SQL,所以傳統 RDBMS 的使用者可以瞬間學會如何查詢資料,而不會像學 MongoDB 一樣,要花相當的力氣先學會那個怪怪的 Query Language 才能查詢。也因為 JSON 格式與 JavaScript 語言的親密關係,所以 Microsoft 也擴充了 DocumentDB 支援的 SQL 語法,讓使用者可以用這年頭無人不知、無人不會的 JavaScript 語言撰寫 Stored Procedure、Trigger、與 User-Defined Function (UDF)。


  • Lv 1

    MongoDB 的語法是:

    1 db.books.find({listPrice: {$gte: 50}});

    DocumentDB 的語法則是:

    1 SELECT * FROM books b WHERE b.listPrice >= 50

    除了提供 SQL 作為 Query 介面之外,DocumentDB 還提供四種不同 Consistency Level,讓使用者可以隨著不同的 Consistency、Availability、與 Latency 需求,做出最佳的設定。

    感覺學習容易多了 


  • 註冊用戶

    Microsoft DocumentDB  好學多了


  • 註冊用戶

    剛測試了一下,原使用 MongoDB 的程式,改連 DocumentDB 可正常執行

    但是持續新增的速度很慢,不確定是不是因為帳號是試用帳號的關係

    另外使用 Robomongo 連 DocumentDB,可使用 MongoDB 的語法 (CRUD)
    不過某些回傳資料格式有不一樣的情況:
    例如: db.getCollection('reveille').find({}).count();
    DocumentDB : NumberLong(20)
    MongoDB    : 20


  • 註冊用戶

    使用 Robomongo 1.0 RC1 對 MongoDB 和 DocumentDB 執行相同的 MongoDB 查詢語法時,並不是都能正常執行,

    在 DocumentDB 使用上的錯誤訊息都類似以下訊息,初步推測 DocumentDB 尚不能完全支援 MongoDB 的語法

    Error: error: {
     "_t" : "OKMongoResponse",
     "ok" : 0,
     "code" : 9,
     "errmsg" : "Syntax error, incorrect syntax near '207'.",
     "$err" : "Syntax error, incorrect syntax near '207'."
    }


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待