gpt4 book ai didi

Python + MongoDB 文档版本控制

转载 作者:可可西里 更新时间:2023-11-01 09:11:04 27 4
gpt4 key购买 nike

我有一个应用程序正在开发中,可在我工作的公司内部用作项目/任务跟踪器。玩弄 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

我只想在显示任务集合时显示最新版本,而我想在进入特定任务的详细信息页面时显示该特定任务的所有版本。这种结构行得通吗?如果是,为了实现我的需要需要运行哪些查询?

预先感谢您抽出宝贵时间阅读本文并可能做出回答。 状态:拒绝 版本 版本号:1 worker :史密斯 状态:拒绝

最佳答案

是的,为什么不呢。那个计划会奏效。另外,你有没有考虑过这样的事情:

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

关于Python + MongoDB 文档版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6965717/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com