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. angular.js - 如何通俗易懂的解釋“依賴注入”?2. dockerfile - [docker build image失敗- npm install]3. mysql - 記得以前在哪里看過一個估算時間的網站4. Span標簽5. angular.js - angularjs如何傳遞id給另一個視圖 根據id獲取json數據?6. 在windows下安裝docker Toolbox 啟動Docker Quickstart Terminal 失敗!7. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?8. docker gitlab 如何git clone?9. docker start -a dockername 老是卡住,什么情況?10. 數據庫無法進入
