Получение только идентификатора набора документов MongoDB - PullRequest
1 голос
/ 31 марта 2020

У меня есть следующая проблема, я уже провел некоторые исследования в net и здесь, но решения пока не найдено, я был бы рад получить предложения.

Рассмотрим код:

    myModel.create(array).then((justCreated)=>
{
//justCreated is the array of document just created, I can print them out and see!
})

Моя проблема: мне просто нужны их идентификаторы, если это возможно, в массиве. Я мог бы взять один за другим, но, есть ли лучший способ?

Я попытался установить второй параметр на "_id", как мы делаем с find или select, как мы делаем с populate, но безуспешно. Есть предложения?

PS. Я использую пн goose.

Ответы [ 2 ]

2 голосов
/ 31 марта 2020

Согласно этому сообщению вы можете видеть, что forEach намного медленнее, чем map метод. Поэтому я думаю, что лучшим решением будет следующее

myModel.create(array)
.then(justCreated => {
    const idsArray = justCreated.map(el => el._id);
})
.catch(err => console.log(err));
1 голос
/ 31 марта 2020

Подумав несколько дополнительных соображений, я пришел к решению, которого я боюсь в отношении производительности, поскольку мой набор данных довольно большой, поэтому я не могу использовать поддокумент, я пытался, но я легко превышаю 16 МБ. максимальный предел.

    myModel.create(array).then((justCreated)=>
{
justCreated.ForEach((doc)=>{id.push(doc.id))
})

Я открыт для предложений о лучших способах решения этой проблемы, но, похоже, это решает проблему, по крайней мере, на первый взгляд.

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