Как преобразовать результаты коллекции Mongodb в массив? - PullRequest
0 голосов
/ 27 июня 2018

Я хочу отправить результаты моей коллекции MongoDB в службу - (точнее, в Алголии) в виде массива.

Результаты, возвращаемые MongoDB, не являются массивом в формате. Так что я думаю, если есть способ преобразовать результат коллекции в массив.

Вот что он возвращает:

{ _id: 5b30c318ca1ea60cb8a55d2f,
  memeid: 'Z3Q7NC',
  url: 'http://res.cloudinary.com/memeafrica/image/upload/v1529922328/test/adam-levine_nxqpnt.gif',
  tags: 'laugh,laughing,laughing uncontrollaby ',
  caption: '',
  imgs: 'adam-levine.gif',
  __v: 0,
  uploadDate: 2018-06-25T10:25:28.940Z,
  tagarray: [ 'laugh', 'laughing', 'laughinguncontrollaby' ],
  views: 500 }
{ _id: 5b30c759ca1ea60cb8a55d30,
  memeid: '2oIjDP',
  url: 'http://res.cloudinary.com/memeafrica/image/upload/v1529923417/test/Debffc4XkAAuvLj_mvzvpz.jpg'
  tags: 'zuma',
  caption: '',
  imgs: 'Debffc4XkAAuvLj.jpg',
  __v: 0,
  uploadDate: 2018-06-25T10:43:37.859Z,
  tagarray: [ 'zuma' ],
  views: 2000 }
{ _id: 5b30d4b22904771be030db62,
  memeid: 'eLT1F',
  url: 'http://res.cloudinary.com/memeafrica/image/upload/v1529926834/test/crying_b6fjaf.gif',
  tags: 'laugh',
  caption: '',
  imgs: 'crying.gif',
  __v: 0,
  uploadDate: 2018-06-25T11:40:34.649Z,
  tagarray: [ 'laugh' ],
  views: 0 }

Что ожидаю:

[
{ _id: 5b30c318ca1ea60cb8a55d2f,
  memeid: 'Z3Q7NC',
  url: 'http://res.cloudinary.com/memeafrica/image/upload/v1529922328/test/adam-levine_nxqpnt.gif',
  tags: 'laugh,laughing,laughing uncontrollaby ',
  caption: '',
  imgs: 'adam-levine.gif',
  __v: 0,
  uploadDate: 2018-06-25T10:25:28.940Z,
  tagarray: [ 'laugh', 'laughing', 'laughinguncontrollaby' ],
  views: 500 }
{ _id: 5b30c759ca1ea60cb8a55d30,
  memeid: '2oIjDP',
  url: 'http://res.cloudinary.com/memeafrica/image/upload/v1529923417/test/Debffc4XkAAuvLj_mvzvpz.jpg'
  tags: 'zuma',
  caption: '',
  imgs: 'Debffc4XkAAuvLj.jpg',
  __v: 0,
  uploadDate: 2018-06-25T10:43:37.859Z,
  tagarray: [ 'zuma' ],
  views: 2000 }
{ _id: 5b30d4b22904771be030db62,
  memeid: 'eLT1F',
  url: 'http://res.cloudinary.com/memeafrica/image/upload/v1529926834/test/crying_b6fjaf.gif',
  tags: 'laugh',
  caption: '',
  imgs: 'crying.gif',
  __v: 0,
  uploadDate: 2018-06-25T11:40:34.649Z,
  tagarray: [ 'laugh' ],
  views: 0 }
]

Мой код:

meme.find({}, (err, meme) => {
  meme.forEach((meme) => {
    console.log(meme); 
  });
});

Как мне манипулировать процессом, чтобы он мог быть массивом?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Объект курсора, возвращаемый find(), имеет метод toArray().

meme.find().toArray((err, memes) => {
    console.log("retrieved memes:");
    console.log(memes);
});
0 голосов
/ 27 июня 2018

Просто используйте карту. Он будет перебирать каждый мем и добавлять их в массив.

meme.find({}, (err, meme) => {
  const memes = meme.map(m => m);
  // Use the array, pass it to a service, or pass to a callback
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...