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