moongoose 및 dict로 인해 어레이로 캐스트가 실패했습니다.

Bussiere

mongodb에 mongoose로 데이터를 삽입하는 데 문제가 있습니다.

내 db.js 모델은 다음과 같습니다.

var Appointment = new Schema({
  date: Date,
  coach: ObjectId,
      complement: String,
      isOwner: Boolean,
  fiter : ObjectId,
  fiters: [
    {
      user: ObjectId,
      isOwner: Boolean,
      status: String,
      invitationDate: Date
    }
  ],
  place: ObjectId,
  objectif : ObjectId,
  pricing: Number,
  status: String,
  ratings: [
    {
      date: Date,
      user: ObjectId,
      score: Number,
      comment: String,
      target: ObjectId,
      targetType: String
    }
  ],
  annulation : Boolean,
  late: Number,
  log: [{
    logType: String,
    date: Date,
    user: ObjectId,
    details: String,
    relatedTo: ObjectId
  }]
},
{
  timestamps: true
});

내 파이썬 스크립트 테스트는 다음과 같습니다.

appointment = { 
   "_id":idFiter,
    "date": "2016-09-25T00:00:00.0000000Z",
    "coach":"57dfd22f7f8effc700bfa16f",
    "fiters" : [
         {
      "user": "57da891db39797707093c6e1",
      "isOwner": False,    
      "status": "invite",
      "invitationDate": "2016-09-25T00:00:00.0000000Z",
    }],
    "place" : "57d66a5b73c0ab6c007beb74",
    "objectif": "57e28b64cae2161f33b641e3",


}
r = requests.post("http://127.0.0.1:8010/appointment/", data=appointment,headers=headers)
print(r.status_code)
print(r.content)

그리고 여기에 express가있는 nodejs의 진입 점이 있습니다.

router.post('/', authenticate.passport.authenticate('bearer', { session: false }), function(req, res) {
  appointmentToInsert =
  {
       date : req.body.date,
       coach : req.body.coach,
       fiter : req.body._id,
       fiters : req.body.fiters,
       place : req.body.place,
       objectif : req.body.objectif,
       isOwner : true,

  };
  new Appointment(appointmentToInsert).save(function (error, appointment) {
    if (error == null) {
      res.status(200).send(appointment);
    } else {
      console.log(error);
      res.status(500).send(error);
    }
  });

});

다음은 오류입니다.

{ [ValidationError: Appointment validation failed]
  message: 'Appointment validation failed',
  name: 'ValidationError',
  errors: 
   { fiters: 
      { [CastError: Cast to Array failed for value "[ 'status', 'isOwner', 'invitationDate', 'user' ]" at path "fiters"]
        message: 'Cast to Array failed for value "[ \'status\', \'isOwner\', \'invitationDate\', \'user\' ]" at path "fiters"',
        name: 'CastError',
        kind: 'Array',
        value: [Object],
        path: 'fiters',
        reason: [Object] } } }

그래서 오류는 fiters dict 필드에서 오는 것처럼 보이지만 누군가 단서가 있다면 이유를 이해할 수 없습니다.

감사합니다.

피스타치오

Python 스크립트는에 대한 사전의 키만 전송하고 fiters있습니다 .items(). 2 개의 튜플을 전송 하도록 추가해보세요 . ORM이 어떤 형식을 기대하는지 정확히 모르겠습니다.

그래도 작동하지 않으면 JSON을 사용하여 POST를 통해 복잡한 구조를 전달할 수도 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

우분투 소프트웨어 및 "sudo snap install gimp"로 인해 김프 설치가 실패했습니다.

분류에서Dev

실패 : 예외로 인해 빌드가 실패했습니다. 이온으로

분류에서Dev

CFNetwork SSLHandshake가 AFNetworking 2.0, 자체 서명 된 인증서 및 [정책 setAllowInvalidCertificates : YES]로 인해 실패했습니다.

분류에서Dev

실패 : 예외로 인해 빌드가 실패했습니다. 이온

분류에서Dev

" 'prepublish'스크립트가 상태 코드 34로 인해 실패했습니다."

분류에서Dev

예외로 인해 Cordova 빌드가 실패했습니다.

분류에서Dev

EmbeddedId로 인해 BackendIdConverter.fromRequestId가 실패했습니다.

분류에서Dev

중복 레코드로 인해 PHP에서 usort가 실패했습니다.

분류에서Dev

컨텍스트로 인해 Kubernetes 배포에 실패했습니다.

분류에서Dev

SSH로 호스트 키 확인에 실패했습니다.

분류에서Dev

TestNG 및 Spring 컨텍스트로 테스트를 실행할 때 Autowired가 null 결과로 실패했습니다.

분류에서Dev

SQLite로 인해 Heroku 푸시가 실패했지만 제거했다고 생각했습니다.

분류에서Dev

부트 스트랩 시간 초과로 인해 "Ubuntu OpenStack 설치 : 정식 배포"가 실패했습니다.

분류에서Dev

org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor로 인해 ElasticSearch BulkShardRequest가 실패했습니다.

분류에서Dev

예외로 인해 Flutter firebase_ml_vision 빌드가 실패했습니다.

분류에서Dev

xlPageBreakPreview로 인해 'Window'개체의 'View'메서드가 실패했습니다.

분류에서Dev

Socket.io가 nsp로 인해 연결에 실패했습니다.

분류에서Dev

Systemd-Networkd BindCarrier가 "알 수없는 lvalue"로 인해 실패했습니다.

분류에서Dev

socket.gaierror [11001] (python) (mqtt)로 인해 getaddrinfo가 실패했습니다.

분류에서Dev

STM8의 cpputest가 여러 'main'으로 인해 실패했습니다.

분류에서Dev

실패 코드 바 예외로 인해 빌드가 실패했습니다. 빌드 명령 실행시

분류에서Dev

io.mockk.MockKException으로 인해 Android Kotlin 단위 테스트가 실패했습니다.

분류에서Dev

mdadm; 이전에 일했습니다. "실패"후 디스크 크기로 인해 어레이를 결합 할 수 없음

분류에서Dev

Mongoose : CastError : "items"경로의 "{value : 'x'}"값에 대해 포함 된 캐스트에 실패했습니다.

분류에서Dev

mongoose CastError : "apps"경로의 "[object Object]"값에 대해 정의되지 않은 캐스트에 실패했습니다.

분류에서Dev

경고 : RequireJS 실패로 인해 모든 검사가 실패했습니다. 계속하려면 --force 사용

분류에서Dev

"잘못된 인수"로 인해 chrt 설정 프로세스가 SCHED_OTHER 정책에 실패했습니다.

분류에서Dev

심각 : 이전 오류로 인해 컨텍스트 [/ example] 시작에 실패했습니다.

분류에서Dev

여러 오류로 인해 매니페스트 병합에 실패했습니다. 로그 참조 (PayUMoney 통합)

Related 관련 기사

  1. 1

    우분투 소프트웨어 및 "sudo snap install gimp"로 인해 김프 설치가 실패했습니다.

  2. 2

    실패 : 예외로 인해 빌드가 실패했습니다. 이온으로

  3. 3

    CFNetwork SSLHandshake가 AFNetworking 2.0, 자체 서명 된 인증서 및 [정책 setAllowInvalidCertificates : YES]로 인해 실패했습니다.

  4. 4

    실패 : 예외로 인해 빌드가 실패했습니다. 이온

  5. 5

    " 'prepublish'스크립트가 상태 코드 34로 인해 실패했습니다."

  6. 6

    예외로 인해 Cordova 빌드가 실패했습니다.

  7. 7

    EmbeddedId로 인해 BackendIdConverter.fromRequestId가 실패했습니다.

  8. 8

    중복 레코드로 인해 PHP에서 usort가 실패했습니다.

  9. 9

    컨텍스트로 인해 Kubernetes 배포에 실패했습니다.

  10. 10

    SSH로 호스트 키 확인에 실패했습니다.

  11. 11

    TestNG 및 Spring 컨텍스트로 테스트를 실행할 때 Autowired가 null 결과로 실패했습니다.

  12. 12

    SQLite로 인해 Heroku 푸시가 실패했지만 제거했다고 생각했습니다.

  13. 13

    부트 스트랩 시간 초과로 인해 "Ubuntu OpenStack 설치 : 정식 배포"가 실패했습니다.

  14. 14

    org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor로 인해 ElasticSearch BulkShardRequest가 실패했습니다.

  15. 15

    예외로 인해 Flutter firebase_ml_vision 빌드가 실패했습니다.

  16. 16

    xlPageBreakPreview로 인해 'Window'개체의 'View'메서드가 실패했습니다.

  17. 17

    Socket.io가 nsp로 인해 연결에 실패했습니다.

  18. 18

    Systemd-Networkd BindCarrier가 "알 수없는 lvalue"로 인해 실패했습니다.

  19. 19

    socket.gaierror [11001] (python) (mqtt)로 인해 getaddrinfo가 실패했습니다.

  20. 20

    STM8의 cpputest가 여러 'main'으로 인해 실패했습니다.

  21. 21

    실패 코드 바 예외로 인해 빌드가 실패했습니다. 빌드 명령 실행시

  22. 22

    io.mockk.MockKException으로 인해 Android Kotlin 단위 테스트가 실패했습니다.

  23. 23

    mdadm; 이전에 일했습니다. "실패"후 디스크 크기로 인해 어레이를 결합 할 수 없음

  24. 24

    Mongoose : CastError : "items"경로의 "{value : 'x'}"값에 대해 포함 된 캐스트에 실패했습니다.

  25. 25

    mongoose CastError : "apps"경로의 "[object Object]"값에 대해 정의되지 않은 캐스트에 실패했습니다.

  26. 26

    경고 : RequireJS 실패로 인해 모든 검사가 실패했습니다. 계속하려면 --force 사용

  27. 27

    "잘못된 인수"로 인해 chrt 설정 프로세스가 SCHED_OTHER 정책에 실패했습니다.

  28. 28

    심각 : 이전 오류로 인해 컨텍스트 [/ example] 시작에 실패했습니다.

  29. 29

    여러 오류로 인해 매니페스트 병합에 실패했습니다. 로그 참조 (PayUMoney 통합)

뜨겁다태그

보관