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