您的位置:首页技术文章
文章详情页

python - pymongo 含有子条件的操作 应该怎么写?

【字号: 日期:2022-08-31 14:20:41浏览:61作者:猪猪

问题描述

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 编程
相关文章: