파이썬에서 MongoEngine을 사용하여 데이터 모델을 사용하고 있습니다.문서 내의 목록에있는 하위 문서 내의 목록에 추가?
{
'id': ...
'revisions': [
{
'id': ...
'revision': 1,
'derivatives': [
{
'id': ...
'name': 'Derivative 1'
}
]
}
]
}
우리는, owner.revisions
의 모든 하위 문서가 revision
을 호출됩니다, 가장 바깥 쪽 문서화 owner
전화 할게 모든 하위 문서 revision.derivatives
을에서 :
나는 BSON 표현으로 기본적으로 다음과 같습니다 데이터 모델이 derivative
이라고합니다.
에 $addToSet
을 보내고 owner
의 특정 revision
안에 설정했습니다. 내가 파이썬이 작성했다 경우는 다음과 같이 것 : 나는 이러한 종류의 쿼리를 실행할 수있는 방법
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
을 오른쪽 owner
의 내부 권리 revision
를 선택하고 원자의 내부 derivatives
컬렉션에 추가 그 revision
?
이와 같은 업데이트 쿼리를 시작하는 방법을 파악하는 데 어려움이 있습니다.
실제 사례를 제공해 줄 수 있습니까? 계속 진행하는 방법을 모르겠습니다. 나는 그 질문을 갱신 할 것이다. –
저는 문제가 발생하고 있음을 알고 있습니다. 솔루션을 구현하는 방법을 모르겠습니다. –
당신은 save를 사용할 수 없으며 애플리케이션 측에서 일종의 잠금을 구현하지 않는 한 스레드로부터 안전 할 수 있습니다. 대안은 "저장"대신 "업데이트"사용으로 전환하는 것입니다. –