[
{
"reports": [
{
"imageid": 1888,
"name": "hello"
},{
"imageid": 2344,
"name": "hello"
}
],
"report_name": "a"
},{
"reports": [
{
"imageid": 1888,
"name": "hello"
},{
"imageid": 2344,
"name": "hello"
}
],
"report_name": "b"
}
]
这是我的mongodb结构。我想从imageid为1888的报表数组中删除对象。例如,在第一个报告中,删除imageid 1888后有2个对象,只有一个报告(仅2344 imageid对象)
db.reports.update(
{ },
{ $pull: { reports: { imageid: 1888 } } },
{ multi: true }
)
我正在mongodb shell中尝试这段代码,它运行良好。 但下面的代码使用的是python pymongo。那段代码不起作用
mycol.update(
{},
{ "$pull": { "reports": {"imageid": imageid} } },
{"multi":"true"}
)
下面是我在使用pymongo从python进行查询时遇到的错误
File "/home/fractaluser/Desktop/Dev/consumerhubfractal_rb/env/lib/python3.5/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/fractaluser/Desktop/fractal/consumerhubfractal_rb/report/views.py", line 45, in report
{"multi":"true"}
File "/home/fractaluser/Desktop/Dev/consumerhubfractal_rb/env/lib/python3.5/site-packages/pymongo/collection.py", line 2535, in update
collation=collation)
File "/home/fractaluser/Desktop/Dev/consumerhubfractal_rb/env/lib/python3.5/site-packages/pymongo/collection.py", line 732, in _update
common.validate_boolean("upsert", upsert)
File "/home/fractaluser/Desktop/Dev/consumerhubfractal_rb/env/lib/python3.5/site-packages/pymongo/common.py", line 132, in validate_boolean
raise TypeError("%s must be True or False" % (option,))
TypeError: upsert must be True or False
我尝试添加upsert=True,但仍然出现另一个错误
请看一看
相关问题 更多 >
编程相关推荐