2015-10-17 93 views
4

在Rails,由於不可思議的ActiveRecord庫,我們可以做這樣的事情:的ActiveRecord類更新流星

bear = Bear.find(id) 
bear.eyes = 'blue' 
bear.friends += 1 
bear.save 

然後將更改保存到數據庫中。

流星我可以這樣做:

bear = Bears.findOne({}); 
bear.eyes = 'blue'; 
bear.friends++; 

提出只在內存中的本地副本的兩個變化。據我所見,無需調用Mongo更新語句即可保持更改。

Bears.update({ 
    _id: bear._id, 
    $inc: { friend: 1 }, 
    eyes: 'blue' 
}); 

我喜歡流星,這是相當驚人的...但是這似乎是倒退了一大步,如果它不能這樣做。

有什麼辦法可以堅持就像我們以前在Rails/ActiveRecord中做的那樣?

+1

流星似乎根本沒有模型圖層,而是直接處理MongoDB集合,就像您注意到的那樣。有可能使用另一個ORM系統與流星,但我從來沒有嘗試過。有幾個ORM可用於node.js,一些基於Rails ActiveRecord(以及Martin Fowler Active Record概念中的一些)。 – max

回答

4

在撰寫本文時,流星在其核心軟件包中不包含ORM。然而,有一個名爲astronomy的社區包,它實現了ActiveRecord風格的模型。完整的文檔可以在here找到。

推薦閱讀:

  • 要創建使用該核心軟件包提供的工具一個簡單的模型層,看看this article
  • 要閱讀社區標題的摘要,請在官方guide repo上查看this issue
+0

天文學看起來真的很棒......從角度世界提醒了一些Restangular。 「讓程序員的生活更輕鬆」的哲學對我來說很合適。 – ardochhigh