Sails 透過 sails-mongo 轉接器支援熱門的 MongoDB 資料庫。
首先,請確認您可以存取正在運行的 MongoDB 伺服器,無論是在您的開發機器上或雲端中。下方的 'mongodb://root@localhost/foo' 指的是在本機安裝、使用 "foo" 作為資料庫名稱的 MongoDB。請務必將該連線 URL 替換為適用於您資料庫的字串。
在開發期間於您的 Node.js/Sails 應用程式中使用 MongoDB
npm install sails-mongo
。在您的 config/datastores.js
檔案中,編輯 default
資料儲存區設定
default: {
adapter: 'sails-mongo',
url: 'mongodb://root@localhost/foo'
}
在您的 config/models.js
檔案中,編輯預設的 id
屬性,使其具有適用於 MongoDB 主要鍵的 type
和 columnName
attributes: {
id: { type: 'string', columnName: '_id' },
//…
}
就是這樣!再次啟動您的應用程式,您應該就可以開始使用了。
在設定您的專案以使用 MongoDB 之後,您可能會注意到您的 Waterline 查詢現在預設為大小寫敏感。若要執行大小寫不敏感的查詢,您可以使用 .meta({makeLikeModifierCaseInsensitive: true})
。
若要在生產環境中使用 MongoDB,請編輯您在 config/env/production.js
中的轉接器設定
adapter: 'sails-mongo',
您也可以設定您的 連線 URL —— 但許多開發人員偏好不要將敏感憑證簽入版本控制。另一個選項是使用環境變數
sails_datastores__default__url=mongodb://heroku_12345678:[email protected]:29017/heroku_12345678
若要在您的預先發佈環境中使用 MongoDB,請編輯
config/env/staging.js
。根據您的應用程式,將您的預先發佈資料庫憑證簽入版本控制可能是可以接受的,因為它們的安全風險較低。
與所有 Sails 資料庫轉接器一樣,當您使用 sails-mongo
時,可以使用任何 Waterline 模型方法與您的模型互動。
對於許多應用程式來說,這就是您所需要的一切 —— 從 "hello world" 到生產環境。即使您遇到限制,通常也可以在不編寫特定於 Mongo 的程式碼的情況下解決。但是,在別無選擇的情況下,可以直接在您的 Sails 應用程式中使用 Mongo 驅動程式。
若要直接存取較低階的「原生」MongoDB 客戶端,請使用資料儲存區實例的 .manager
屬性。
從 sails-mongo
v2.0.0 及更高版本開始,您可以透過 manager.client
存取 MongoClient
物件。這讓您可以存取最新的 MongoDB 改進功能,例如 ClientSession
,以及隨之而來的交易、變更串流和其他新功能。
var mongoClient = Pet.getDatastore().manager.client;
var results = await mongoClient.db('test')
.collection('pet')
.find({}, { name: 1 })
.toArray();
console.log(results);
如需原生 MongoDB 客戶端中可用方法的完整列表,請參閱 Node.js MongoDB 驅動程式 API 參考文件。