Here is my mongodb object. I need to write update function for "graded" field. Sometimes i need to create this field, sometimes update.
@api_view(['POST'])
def updateGrade(request):
db = connect_to_db()
data = json.loads(request.body)
db.update({ '_id': ObjectId(data["id"])},
{ "$set" : {
"worksheetSolutions.$[idx]": {"graded": data["status"]}
} },
{"arrayFilters":[{"idx":data["answerId"]}]}
)
q = db.find_one({'_id': ObjectId(data["id"])})
q['_id'] = str(q['_id'])
return JsonResponse(q, safe=False)
Here is my python code. (not correct at all as I see now)
Ok, with some time i got it
def updateGrade(request):
db = connect_to_db()
data = json.loads(request.body)
db.update({ '_id': ObjectId(data["id"]), "worksheetSolutions.id": data["answerId"]},
{ "$set" : {
"worksheetSolutions.$.graded": data["status"]
} }
)
q = db.find_one({'_id': ObjectId(data["id"])})
q['_id'] = str(q['_id'])
return JsonResponse(q, safe=False)