Python MongoDB文档版本控制

我有一个应用程序在内部用作我正在为之工作的公司中的项目/任务跟踪器.玩MongoDB atm.我有以下伪模式:

task
    _id
    name
    project
    initial_notes
    versions
        number
        versions
            version_1
                worker
                status
                date(if submitted)
                review_notes(if rejected)
                reply_on(if accepted/rejected)
            (version_n)(if any)

我遇到的问题是对任务进行版本控制.我已经阅读了很多可能的方法,但是我一直都没有理解它们.我读了一些我喜欢here的东西,真的很喜欢mongoid的方式,它是versioning

更好地思考它我宁愿拥有这样的东西

task
    _id
    versions
        number_of_versions: 3
        current_version
            version_no: 3
            worker: bob
            status: accepted
        old_versions
            version
                version_no: 2
                worker: bob

我想在显示任务集合时显示最新版本,并且我想在输入特定任务的详细信息页面时显示特定任务的所有版本.这个结构会起作用吗?如果是的话,为了实现我的需要,需要运行哪些查询?

提前感谢您花时间阅读本文并回答它.
                    状态:拒绝
                版
                    version_no:1
                    工人:史密斯
                    状态:拒绝

解决方法:

是的,为什么不.该计划将起作用.另外,你考虑过这样的事情:

task 
    ...
    versions = [       # MongoDB array 
        {   version_id 
            worker
            status
            date(if submitted)
            review_notes(if rejected)
            reply_on(if accepted/rejected)
        },
        { version_id : ... }, 
        ... 

可能的版本插入查询:

tasks.update( { # a query to locate a particular task}, 
              { '$push' : { 'versions', { # new version } } } )

请注意,在这种情况下从版本数组中检索最后一个版本是由程序完成的,而不是由Mongo完成的.

相关文章

文章浏览阅读752次。关系型数据库关系型数据库是一个结构化的...
文章浏览阅读687次,点赞2次,收藏5次。商城系统中,抢购和秒...
文章浏览阅读1.4k次。MongoTemplate开发spring-data-mongodb...
文章浏览阅读887次,点赞10次,收藏19次。1.背景介绍1. 背景...
文章浏览阅读819次。MongoDB连接失败记录_edentialmechanisn...
文章浏览阅读470次。mongodb抽取数据到ES,使用ELK内部插件无...