我試圖從我的模式中的iPad中刪除最低價格。我知道如何使用pymongo來查找它,但我不知道如何刪除它。 這裏是我的架構:Pymongo:從陣列中刪除元素
{
"_id": "sjobs",
"items": [
{
"type": "iPod",
"price": 20.00
},
{
"type": "iPad",
"price": 399.99
},
{
"type": "iPad",
"price": 199.99
},
{
"type": "iPhone 5",
"price": 300.45
}
]
}
{
"_id": "bgates",
"items": [
{
"type": "MacBook",
"price": 2900.99
},
{
"type": "iPad",
"price": 399.99
},
{
"type": "iPhone 4",
"price": 100.00
},
{
"type": "iPad",
"price": 99.99
}
]
}
我有一個Python循環,找到最低的銷售價格爲iPad:
cursor = db.sales.find({'items.type': 'iPad'}).sort([('items', pymongo.DESCENDING)])
for doc in cursor:
cntr = 0
for item in doc['items']:
if item['type'] == 'iPad' and resetCntr == 0:
cntr = 1
sales.update(doc, {'$pull': {'items': {item['type']}}})
這是行不通的。我需要做些什麼來消除iPad價格最低的物品?
作爲一般性評論:「不起作用」通常是不夠的信息。 –
對不起。我沒有收到錯誤消息。程序成功運行,但我的模式沒有任何反應。因此,我的立場是:「不起作用」。 –
是否有一個原因,你正在做python搜索和排序(帶來所有的文件),而不是使用聚合查詢獲得每個文檔_id中每個iPad項目的最低價格,然後爲每個文檔發佈更新? –