Я работаю над БД по разработке продуктов.Каждый товар состоит из нескольких предметов и услуг.Каждый элемент имеет несколько свойств, и у меня есть коллекция элементов.Таким образом, у меня много ко многим отношений.
Я хочу удалить элемент внутри продукта.
Я попробовал $pull
, с обновлением, но мне не повезло.Как я понимаю, мне нужно сначала найти документ, а затем удалить вложенный документ с помощью $pull
.
. Это мой флэш-маршрут с обновлением:
main.route("/Producto/<string:prd_id>/<string:itm_id>/Borrar" , methods= ['GET','POST'])
@login_required
def borraprditm(prd_id,itm_id):
if request.method == 'POST':
productos.update_one({'comp':usuario['comp_id'],"prd:id":prd_id},{ "$pull": {"items.itm_id": {"itm_id": itm_id}}})
flash('El Elemento ha sido eliminado', 'danger')
return redirect(url_for('main.producto'))
return render_template('prditmdelete.html')
Это мой документ.:
_id : 5cf572fc341026b937931734
comp : 13847
codigo : "prueba"
descripcion : "prueba 2"
um : "Prd"
cantidad : 0
precio : 0
prd_id : "0344131"
items :Array
0 : Object
_id : 5cf18a08cf6ea6c98dd7861e
comp : 13847
codigo : "750-881"
descripcion : "PFC 1Mb, CoDeSyS 2.3 - Mca WAGO"
um : "Pza"
precio : 1234
itm_id : "0645566"
1 : Object
_id : 5cf18a13cf6ea6c98dd7861f
comp : 13847
codigo : "750-8202"
descripcion : "PFC-200 Linux"
um : "Pza"
precio : 3453
itm_id : "0915059"
2 : Object
_id : 5cf18a20cf6ea6c98dd78620
comp : 13847
codigo : "jack"
descripcion : "tapa belden nodo"
um : "Pza"
precio : 20
itm_id : "0918133"