Swift 如何訪問 MongoDB

perfect_github_2_0_0.jpg

Perfect 開源項目 參與 Perfect 開發 Slack 在線協同html

MongoDB

MongoDB庫函數是在mongo-c語言庫的基礎上封裝而成,可以爲Swift輕鬆訪問MongoDB服務器提供便利。git

該工具庫軟件包是由Swift軟件包管理器編譯而來,是
Perfect項目的組成部分,
被設計爲能夠獨立使用,不依賴PerfectLib或其它任何組件。github

請確保安裝並激活了最新版本的Swift 3.0 toolchain。mongodb

不一樣操做系統平臺的準備工做

OS X

該工具包須要經過Homebrew安裝mongo-c。數據庫

安裝Homebrew:swift

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝mongo-c:數組

brew install mongo-c

Linux

確保已經安裝了libmongoc。xcode

sudo apt-get install libmongoc

在您的項目裏引用MongoDB Driver驅動

請在Package.swift增長對該驅動的依存關係。ruby

.Package(
    url:"https://github.com/PerfectlySoft/Perfect-MongoDB.git",
    majorVersion: 2, minor: 0
    )

關於如何在您的項目中使用Perfect函數庫,詳見參考手冊《使用Swift軟件包管理器編譯項目服務器

快速上手

經過如下命令快速克隆一個空白的Perfect項目模板:

git clone https://github.com/PerfectlySoft/PerfectTemplate.git
cd PerfectTemplate

在Package.swift文件中增長依存關係:

let package = Package(
 name: "PerfectTemplate",
 targets: [],
 dependencies: [
     .Package(url:"https://github.com/PerfectlySoft/Perfect.git", versions: Version(0,0,0)..<Version(10,0,0)),
     .Package(url:"https://github.com/PerfectlySoft/Perfect-MongoDB.git", versions: Version(0,0,0)..<Version(10,0,0))
    ]
)

建立Xcode項目:

swift package generate-xcodeproj

從Xcode中打開自動生成的PerfectTemplate.xcodeproj項目文件。

該項目會編譯而後在本地端口8181啓動一個服務器。

⚠️注意⚠️ 每次向項目追加依存關係時,必需要打開Swift軟件包管理器從新建立一個新的Xcode項目文件。注意任何對該文件的手工修改都會被丟棄。

在您的項目中聲明MongoDB

請在您的Perfect項目源程序開頭聲明並導入MongoDB函數庫:

import MongoDB

建立一個MongoDB數據庫鏈接

建立到MongoDB服務器鏈接時,須要相應的URL,內容是IP或域名,並可選擇端口號。

肯定具體的鏈接URL以後,參考如下例子打開鏈接:

let client = try! MongoClient(uri: "mongodb://localhost")

其中「localhost」請自行替換爲實際的服務器地址。

定義一個數據庫

一旦服務器鏈接成功,便可選擇具體數據庫:

let db = client.getDatabase(name: "test")

定義一個MongoDB集合D

請採用如下方式定義和操做MongoDB集合:

let collection = db.getCollection(name: "testcollection")

關閉活動的服務器鏈接

一旦服務器鏈接成功,建議採用defer塊方式進行滯後關閉

defer {
    collection.close()
    db.close()
    client.close()
}

執行檢索

請使用find方法在集合中檢索所有有關文檔:

let fnd = collection.find(query: BSON())

    // 初始化一個空數組用於接收格式化結果
    var arr = [String]()

    // 「fnd」被定義爲MongoCursor的檢索記錄遊標,是能夠遍歷的
    for x in fnd! {
        arr.append(x.asString)
    }

有關MongoDB Collections集合類,請參考MongoDB Collections

長按二維碼關注Perfect 官網
微信號:PerfectlySoft (公司名)
qr.jpg

若是須要幫助,請註冊咱們在Slack上的中文頻道: http://perfect.ly/

更多內容請查看 PerfeclySoft 源碼倉庫 https://github.com/PerfectlyS...
詳細內容請點擊如下連接,或選擇 http://www.perfect.org 官網。

相關文章
相關標籤/搜索