我想使用mongo來存儲全局提要的數據,但我想用redis緩存最近發佈的內容。有沒有辦法建立一個模型來使用兩個適配器?如果沒有,我想我會嘗試讓一個控制器使用兩個模型。在一個模型中使用兩個不同的適配器
5
A
回答
6
這是一個實驗性功能,但你可以有一個模型中使用多個連接,並連接可以使用不同的適配器:
在帆v0.9.x模式,與mongo
和redis
定義/config/adapters.js
:
module.exports = {
adapter: ['mongo', 'redis']
attributes: {...}
}
在帆v0.10.x模式,與mongo
和redis
在/config/connections.js
定義:
module.exports = {
connections: ['mongo', 'redis']
attributes: {...}
}
但是,您不能指定某些屬性使用一個連接,而其他屬性使用另一個連接。如果涉及多個適配器,並且適配器具有相同的方法,則它們將合併在一起。在同一模型中使用sails-mongo
和sails-redis
就是這種情況;兩個適配器都有find
,create
,update
和destroy
,因此您的模型最終只能使用其中一種適配器的方法(在上面的示例中爲sails-redis
)。
然後,多個適配器的用途是什麼?這是將外部API方法添加到模型的一種方法。例如,如果您有代表生活在Amazon S3上的文件的File
模型,則可以使用sails-s3
適配器與upload
和download
方法以及sails-mongo
一起存儲有關該文件的元數據。
緩存也是active development中的一項功能,但同時最好的辦法是使用單獨的緩存模型,如您所建議的那樣。
相關問題
- 1. 同時使用兩個不同的網絡適配器
- 2. 如何使用相同模型使用兩個不同的模型串行器?
- 3. 在TabLayout中使用相同的適配器的兩個片段不起作用
- 4. Django中使用來自兩個不同車型在另一個模型
- 5. 如何在單個適配器中使用兩個查看器
- 6. 在MVC3的一個視圖中使用不同的兩個ado.net實體模型
- 7. 如何在兩個不同的模型中使用相同的驗證器
- 8. 兩個ArrayList一個RecyclerView適配器
- 9. 在兩個不同的EDMX地圖中使用一個表格/模型
- 10. 如何在一個類中調用兩個適配器android
- 11. 來自兩個不同模型的相同模型中的兩個外鍵
- 12. Android同步適配器的兩個庫只有一個叫
- 13. 在一個請求中使用同一模型兩次
- 14. 如何在Django中使用同一模型的兩個外鍵?
- 15. 如何使用CodeIgniter在同一個控制器中加載兩個模型?
- 16. 將兩個相同類型的模型分配給另一個模型導軌
- 17. Java - 在自定義適配器中創建對兩個模型的引用
- 18. 在張量流中使用兩個不同的模型
- 19. 在另一個Rails中使用同一模型的兩個引用:4
- 20. Django Rest Framework - 在同一個API調用中的兩個模型
- 21. 如何在單個類中使用兩個適配器
- 22. 在兩個不同型號的模板
- 23. 兩個模型使用同一個表,但在CakePHP條件
- 24. 如何使用兩種不同形式的一個模型?
- 25. 想要在同一個視圖上使用同一個模型兩次不同的類型?
- 26. ASP.NET MVC-在同一視圖中使用兩個模型
- 27. 一個模型發送兩個相同的SQL,但兩個不同的結果
- 28. 適用於多個帳戶類型的同步適配器
- 29. 在同一個應用程序的兩個不同數據庫中使用相同的Django模型
- 30. 在兩個適配器中共享相同的視圖
這正是我所期待的。在屬性之間進行選擇會很好(對於redis中的每個帖子,我會想要用戶名,用戶的圖像和其他特定數據,而我認爲我只想在我的mongo數據庫中擁有用戶標識),但是這個應該足夠好。 – Teeknow
要指定我的意思是「我只想在我的mongo數據庫中的用戶ID」我的意思是我只想要用戶的ID存儲在他們的帖子。 – Teeknow
這仍然是實驗性的,或者我可以在生產應用程序中使用它嗎? – theblang