python - pymongo 含有子條件的操作 應(yīng)該怎么寫?
問題描述
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:結(jié)果應(yīng)該是這樣:
{'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刪除)結(jié)果應(yīng)該是這樣:
{'a':'AAA' , 'b':[ { 'b21':'b21value' , 'b22':'b22value' } ]}{'a':'BBB' , 'b':[ {'b11': 'b11value' ,'b12':'b12value'} , { 'b21':'b21value' , 'b22':'b22value' } ]}
一個更新,一個是刪除這兩個怎么寫?sql語句應(yīng)該怎么寫?謝謝
問題解答
回答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三個修改器。
相關(guān)文章:
1. javascript - node.js promise沒用2. android 如何實現(xiàn)如圖中的鍵盤上的公式及edittext的內(nèi)容展示呢3. c++ - 如何正確的使用QWebEngineView?4. golang - 用IDE看docker源碼時的小問題5. javascript - js 寫一個正則 提取文本中的數(shù)據(jù)6. 算法 - python 給定一個正整數(shù)a和一個包含任意個正整數(shù)的 列表 b,求所有<=a 的加法組合7. yii2中restful配置好后在nginx下報404錯誤8. java - 我在用Struts2上傳文件時,報以下錯誤怎么回事?9. PHP注冊功能10. php - 注冊驗證郵箱失效后操作問題
