Как получить доступ к вставленному массиву BulkWriteResult в API-интерфейсе insertMany mongoose? - PullRequest
0 голосов
/ 07 ноября 2018

insertMany API в mongoose возвращает объект Promise, но я использую его версию с обратным вызовом.

let options = {
    "ordered": true
};

MySchema.insertMany(documents, options, function (error, docs) {
    if(error) {
        // i need insertedIds array here
    } else {
        // do someting
    }
});

когда я строковый error объект, я вижу JSON, как показано ниже:

{
   "ok":1,
   "writeErrors":[
        "code":11000,
        "index":1,
        // there will be some more failure details here
   ],
   "writeConcernErrors":[],
   "insertedIds":[
      {
         "index":0,
         "_id":"5be183914d0c761eeadda8c4"
      },
      {
         "index":1,
         "_id":"5be183914d0c761eeadda8c5"
      },
      {
         "index":2,
         "_id":"5be183914d0c761eeadda8c6"
      }
   ],
   "nInserted":1,
   "nUpserted":0,
   "nMatched":0,
   "nModified":0,
   "nRemoved":0,
   "upserted":[]
}

но когда я пытаюсь получить массив insertedIds, он возвращает undefined. Я провел небольшое исследование и обнаружил, что возвращаемый объект error на самом деле не является объектом JSON, а связан с BulkWriteResult или BulkWriteError.

Так как же теперь получить значения в массиве insertedIds? Пожалуйста, помогите.

P.S .: в версии для мангустов: ^ 5.2.17

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...