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

PyMongoを使用して配列内のオブジェクトを更新する

    "ドット表記" を使用します 更新部分の位置演算子。また、入力を変換して、キー表現の「ドット表記」形式に一致させます。

    # Transform to "dot notation" on explicit field
    for key in data:
        data["mylist.$." + key] = data[key]
        del data[key]
    
    # Basically makes
    # { 
    #      "mylist.$.data1": "new lorem",
    #      "mylist.$.data3": "goldeneye"
    # }
    
    db.testing.find_and_modify(
        query = {"_id": "12345", 'mylist.nested_id' : "1"},
        update = { "$set": data }
    )
    

    これで$が転置されます 更新のクエリ部分から実際に一致した要素の位置に移動します。一致した配列要素が更新され、「ドット表記」を使用すると、言及されたフィールドのみが影響を受けます。

    このコンテキストで「サービス」が何を意味するのかわかりません。配列要素の位置を明確に一致させようとしているため、これを「転記エラー」として扱っています。

    それはもっときれいかもしれませんが、これはあなたに一般的な考えを与えるはずです。




    1. MongoDBブラックリストに登録された致命的なエラー

    2. モンゴコンプレックスソーティング?

    3. 文字列をfloatに変更するMongodb配列

    4. node.jsサーバーを実行するにはインターネット接続が必要ですか?