Mongodb,在python中创建更新

Mongodb,在python中创建更新,python,django,mongodb,backend,djongo,Python,Django,Mongodb,Backend,Djongo,这是我的mongodb对象。我需要为“分级”字段编写更新函数。有时我需要创建此字段,有时需要更新 @api_view(['POST']) def updateGrade(request): db = connect_to_db() data = json.loads(request.body) db.update({ '_id': ObjectId(data["id"])}, { "$set" : {

这是我的mongodb对象。我需要为“分级”字段编写更新函数。有时我需要创建此字段,有时需要更新

@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)
这是我的python代码。(我现在看到的一点也不正确)

  • data.id=>\u id
  • data.answerId=>答案的id
  • data.status=>true/false变量

    • 好的,过一段时间我就明白了

      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)
      

      你的问题是什么?@Oleg我写更新查询有三个字母