2010-11-02 25 views
0

首先要做的事情。我可能會完全偏離這一點。我仍然在學習Mongo和NOSql解決方案。我們正在編寫我們的應用程序有一個新組件,而不是坐下來弄亂一個關係數據庫,我們想使用一些更適合我們對象的東西。試圖使用MongoDB持久保存對象

因此,讓我們來看一個簡單的例子:

Class User extends \Model { 
    public $name; 
    public $hobbies; 
} 

$名字也只是一個字符串。但是讓我們說$ hobbies是一個對象或一組對象。我希望能夠將其引入數據存儲並能夠稍後檢索它。

起初,我沿着將對象分解成數組並將其存儲在Mongo中,然後將其拉回並填充對象的道路上。使用我製作的通用導入和導出方法非常簡單。問題出現在我有一些健壯的對象,其他對象作爲成員變量等等。在那一點上,我仍然可以導出到一個多維數組,並將其存儲好。但重新導入對象變成了問題。

我可以做的另一個選擇是seralize()對象,並將其與一些描述性數據一起存儲在mongo中。

Sooooo。思考?

我的問題在這裏的一部分是,我是新來的NOSQL產品,並不確定他們的全部限制/潛力。我只是在看Mongo錯誤,並試圖讓它做一些不該做的事情?我寧願不使用一些第三方模塊,而寧願寫一些簡單而輕量級的東西。

回答

0

我認爲序列化是去這裏的路。然後你可以使用神奇的方法__sleep__wakeup爲每個類來處理任何棘手的情況。

+1

我唯一的問題就是爲什麼即使使用Mongo?如果它是序列化的,我不能在嵌入對象中進行深入搜索:/ – 2010-11-02 18:53:26

0

這裏的其他選項序列化你的對象成陣列,而不是僅僅使用「序列化」的。如果我沒有弄錯,實際上你可以重寫這些子對象中的「serialize」方法,並且基本上讓它們自己序列化成數組(或者更具體的散列表)。

如果主義爲你做這件事,那就更好了。但如果你只是想要這個功能,你可以自己做。

相關問題