您的位置:首頁技術文章
文章詳情頁

python - pymongo 含有子條件的操作 應該怎么寫?

瀏覽:103日期:2022-08-31 14:20:41

問題描述

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三個修改器。

標簽: Python 編程
相關文章:
国产综合久久一区二区三区