sql >> データベース >  >> NoSQL >> MongoDB

MongoEngineのListFieldのEmbeddedDocumentをアトミック更新するにはどうすればよいですか?

    位置演算子を使用して、一致した埋め込みドキュメントを更新できます。

    テストの例を次に示します(https://github.com/MongoEngine/mongoengine/blob/master/tests/test_queryset.py#L313)

    def test_update_using_positional_operator(self):
        """Ensure that the list fields can be updated using the positional
        operator."""
    
        class Comment(EmbeddedDocument):
            by = StringField()
            votes = IntField()
    
        class BlogPost(Document):
            title = StringField()
            comments = ListField(EmbeddedDocumentField(Comment))
    
        BlogPost.drop_collection()
    
        c1 = Comment(by="joe", votes=3)
        c2 = Comment(by="jane", votes=7)
    
        BlogPost(title="ABC", comments=[c1, c2]).save()
    
        BlogPost.objects(comments__by="jane").update(inc__comments__S__votes=1)
    
        post = BlogPost.objects.first()
        self.assertEquals(post.comments[1].by, 'jane')
        self.assertEquals(post.comments[1].votes, 8)
    



    1. node.jsで同じ2つのアプリのredisデータベースを分離する方法

    2. mongodbではなくmongoシェルのみをインストールします

    3. MongoDBで1970年より前の日付を処理する方法

    4. マングースと非同期ウォーターフォールモデルを使用してMongoDbにデータを保存する方法