StackOverflow에 대한 비슷한 질문이 있지만 찾으려는 내용이 없으므로 도움을 얻을 수 있습니다.MongoEngine의 ListField에서 EmbeddedDocument에 대한 원자 적 업데이트를 수행하는 방법은 무엇입니까?
내 모델 : 각 blogpost.blog_url를 들어
class BlogPost(EmbeddedDocument):
title = StringField(required=True)
blog_url = StringField(required=True, unique=True)
content = StringField()
turned_into_bitly_link = BooleanField(default=False)
class Person(Document):
name = StringField
blog_posts = ListField(EmbeddedDocumentField(BlogPost), default=list)
, 나는 URL이 단축되어 있는지 확인하기 위해 Bitly API를 쿼리합니다. 내가 할 수 있기를 바란다는 것은 Bitly에서 얻은 데이터를 내 데이터베이스의 적절한 블로그 포스트와 대조하는 것입니다. Bitly에서 가져온 개체에는 내 데이터베이스에서 해당 blogpost를 일치시키고 업데이트하는 데 사용해야하는 URL 필드가 들어 있습니다. 한 번에 하나씩 Bitly에 일괄 적으로 blog_urls를 보내야한다고 말하면됩니다.
는 blog_posts의 집합을 감안할 때 Bitly 모든 주어진 개인에 따른 객체 : 사람 = Person.objects.get (name__exact = 'BobSmith') 내 Person 객체에 포함 된 특정 blog_post을 선택할 수있는 방법
고유 한 URL 필드에 의해?
임시 방편으로, 내 person 객체의 blog_posts를 반복 할 수 있고 blog_post.url이 내 Bitly 객체의 URL과 일치하면 turns_into_bitly_link 필드를 업데이트 할 수 있지만 이것에 대해 가장 효율적인 방법입니다.
희망적입니다. 명확히하고 기쁜 마음으로 미리 조언 해 주셔서 감사합니다.
벤
흠. * [MongoDB & Pyhon] [1] *에서 3 장을 읽으십시오. 필자는 pymongo 쿼리를 사용하고 db를 원자 적으로 업데이트하는 것을 고려해야합니다. 필자의 눈에는 구문이 특히 mongoongine의 쿼리 작업보다 쉽게 읽을 수 있습니다. [1] : http://shop.oreilly.com/product/0636920021513.do –
나는 이것을 내 대답으로 넣었지만, 아아, stackoverflow는 아직 그 특권을 내게 맡기지 않았다. –