我在 Python 中使用 MongoEngine 来处理我的数据模型。
我有一个数据模型,它基本上看起来像 BSON 中所示:
{
'id': ...
'revisions': [
{
'id': ...
'revision': 1,
'derivatives': [
{
'id': ...
'name': 'Derivative 1'
}
]
}
]
}
我们将最外层的文档称为 ,将调用其中的所有子owner文档,并调用其中的所有子文档。owner.revisionsrevisionrevision.derivativesderivative
我正在寻找特定内部特定内部$addToSet的derivatives集合。如果我必须用 Python 编写它,它看起来像这样:revisionowner
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?
很难弄清楚如何开始使用这样的更新查询。