微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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完成的.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐