python - pymongo 含有子條件的操作 應該怎么寫?
問題描述
mongodb pymongo:有兩條記錄是這樣
{'a':'AAA' , 'b':[ {'b11': 'b11value' ,'b12':'b12value'} , { 'b21':'b21value' , 'b22':'b22value' } ]}{'a':'BBB' , 'b':[ {'b11': 'b11value' ,'b12':'b12value'} , { 'b21':'b21value' , 'b22':'b22value' } ]}
我想更新a為AAA且b中b11的值為b11value的值為b11111111value:結果應該是這樣:
{'a':'AAA' , 'b':[ {'b11': 'b11111111value' ,'b12':'b12value'} , { 'b21':'b21value' , 'b22':'b22value' } ]}{'a':'BBB' , 'b':[ {'b11': 'b11value' ,'b12':'b12value'} , { 'b21':'b21value' , 'b22':'b22value' } ]}
以及把a為AAA且b中b11的值為b11value的(b11刪除)結果應該是這樣:
{'a':'AAA' , 'b':[ { 'b21':'b21value' , 'b22':'b22value' } ]}{'a':'BBB' , 'b':[ {'b11': 'b11value' ,'b12':'b12value'} , { 'b21':'b21value' , 'b22':'b22value' } ]}
一個更新,一個是刪除這兩個怎么寫?sql語句應該怎么寫?謝謝
問題解答
回答1:例子里c為你的集合名。
第一個:
db.c.update( {’a’: ’AAA’, ’b’: {’$elemMatch’: {’b11’: ’b11value’}}}, {’$set’: {’b.$.b11’: ’b11111111value’}})
第二個:
db.c.update( {’a’:’AAA’}, {’$pull’: {’b’: {’b11’: ’b11111111value’}}})
用到了$elemMatch,$set,$pull三個修改器。
相關文章:
1. 在mac下出現了兩個docker環境2. mysql 一個sql 返回多個總數3. docker-compose中volumes的問題4. javascript - 螞蟻金服里的react Modal方法,是怎么把元素插入到頁面最后的5. 如何用筆記本上的apache做微信開發的服務器6. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????7. CSS3 畫如下圖形8. angular.js - ionic2 瀏覽器跨域問題9. android - rxjava merge 返回Object對象數據如何緩存10. python - Scrapy存在內存泄漏的問題。
