首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Mongoid::Versioning -如何检查以前的版本?

Mongoid::Versioning -如何检查以前的版本?
EN

Stack Overflow用户
提问于 2012-01-28 10:23:01
回答 1查看 2.2K关注 0票数 2

我在基于Mongoid的类中包含了Mongoid::Versioning模块。检查以前的“版本”或文档的化身的最佳方式是什么?我希望能够看到它的历史。这可以通过rails console或MongoDB shell实现。查看文档历史记录的最简单方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 19:32:44

Mongoid::Versioning模块将一个名为version的Integer类型的字段添加到文档中,该字段记录当前文档的版本,从1开始,直到最大值(如果已定义)。此外,您还将创建一个嵌入式文档"versions“。然后有一个before_save回调,它会为您处理版本控制。

一般来说,我会推荐一个最大值,但这取决于您。关于如何获取它们,您没有给出示例文档,所以让我们以一篇非常简单的文章作为示例:

代码语言:javascript
运行
复制
#Make an empty post, just a title, version 1
post = Post.create(:title => "Hello World")
# Now add some "content" and save, version 2
post.content = "Woo - content"
post.save

这将为我们提供一个类似以下内容的文档:

代码语言:javascript
运行
复制
{
  "title": "Hello World",
  "content": "Woo - content",
  "comments": [
  ]
  "version": 2
  "versions": [
    { "title": "Hello World", "version": 1 }
  ]
}

现在你只需要使用你的标准的find机制来找到它:

代码语言:javascript
运行
复制
post = Post.find(:first, :conditions => {:title => "Hello World"})

从中获取最新版本,然后您可以通过编程方式搜索以前的版本。我会发布输出,但我目前还没有设置一个样本。

类似地,如果您希望通过shell执行此操作,则只需根据标题和版本字段运行db.namespace.find()。

希望这是有意义的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9042427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档