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. 查詢mysql數據庫中指定表指定日期的數據?有詳細2. mysql - 怎么生成這個sql表?3. mysql儲存json錯誤4. php - 公眾號文章底部的小程序二維碼如何統計?5. mysql - 表名稱前綴到底有啥用?6. mysql - 數據庫表中,兩個表互為外鍵參考如何解決7. Navicat for mysql 中以json格式儲存的數據存在大量反斜杠,如何去除?8. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現存在即更新應該使用哪個標簽?9. mysql - 數據庫建字段,默認值空和empty string有什么區別 11010. sql語句 - 如何在mysql中批量添加用戶?
