我在 Python 中使用 MongoEngine 来处理我的数据模型。
我有一个数据模型,它基本上看起来像 BSON 中所示:
{
'id': ...
'revisions': [
{
'id': ...
'revision': 1,
'derivatives': [
{
'id': ...
'name': 'Derivative 1'
}
]
}
]
}
我们将最外层的文档称为 ,将调用其中的所有子owner
文档,并调用其中的所有子文档。owner.revisions
revision
revision.derivatives
derivative
我正在寻找特定内部特定内部$addToSet
的derivatives
集合。如果我必须用 Python 编写它,它看起来像这样:revision
owner
def add_to_set(owner_id, revision_id, new_derivative):
for owner in owner_collection:
if owner.id == owner_id:
# found the right owner
for revision in owner.revisions:
if revision.id == revision_id:
# we've found the right revision in the right owner
# now append and get out
revision.derivatives.append(new_derivative)
return
我怎样才能运行这种查询,选择右边revision
的右边owner
并原子地附加到内部derivatives
集合上revision
?
很难弄清楚如何开始使用这样的更新查询。