Почему моя попытка сохранить объект JSON с помощью mongoose выдает ошибки «Cast to»? - PullRequest
0 голосов
/ 20 сентября 2019

У меня ОЧЕНЬ большой массив объектов, которые необходимо импортировать в MongoDB, но мне нужно делать их по одному, чтобы я мог использовать mongoose-field-encryption для шифрования определенных полей в состоянии покоя.

Мне удалось импортировать данные с помощью mongoimport, а затем я смог экспортировать их в JSON с использованием Robo3T, но при попытке импорта я получаю ошибки такого типа.Я просто собираюсь использовать одну запись в качестве примера.

Пример данных для импорта:

{ 
  "_id" : { "$oid" : "5d82c8b95627367d122082cd" }, 
  "clientID" : [ { "$oid" : "5d82240f7c8ddd03b62aee5e" } ],
  "scheduled" : { "$date" : "2013-05-16T12:00:00.000+0000" }, 
  "note" : "", "reminder" : false, 
  "cell" : false, 
  "type" : [ { "$oid" : "5d826362f4aac80a557348a2" } ], 
  "status" : [ { "$oid" : "5d82661cbc473c0a88826d09" } ], 
  "pmtdue" : 0.0, 
  "pmtduedate" : "", 
  "payment" : 0.0, 
  "pmttype" : "", 
  "paid" : false, 
  "pmtnote" : "" 
}

Код, который я использую для импорта:

const appointment = new Appt(p).save();

Ошибки:

ValidationError: Ошибка проверки приложения:

  • _id: Ошибка приведения к ObjectID для значения "{'$ oid': '5d82c8b95627367d122082cd'}" по пути "_id"
  • clientID: сбой приведения к ObjectID для значения "[{'$ oid': '5d82240f7c8ddd03b62aee5e'}]" по пути "clientID"
  • запланировано: сбой приведения к дате для значения "{'$ date ':' 2013-05-16T12: 00: 00.000 + 0000 '} "по пути" запланировано "
  • тип: сбой приведения к ObjectID для значения" [{' $ oid ':' 5d826362f4aac80a557348a2 '}] "at path" type "
  • status: сбой приведения к ObjectID для значения" [{'$ oid': '5d82661cbc473c0a88826d09'}] "at path" status "

Iпонять, что моя схема должна быть рассмотрена, чтобы понять проблему, поэтому вот что:

const apptSchema = new mongoose.Schema({
  clientID: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Client'
  },
  status: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'ApptStatus'
  },
  type: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'ApptType'
  },
  scheduled: Date,
  note: String,
  cell: Boolean,
  pmtdue: Number,
  pmtduedate: Date,
  payment: Number,
  pmttype: String,
  paid: Boolean,
  pmtnote: String
});

Что я делаю не так?Мой пакет.json для мангусты:

"mongoose": "^5.7.1",
...