Индексирование в mongoose.model для массива возвращает undefined

Я создал простую таблицу (документ?) В mongoDB. Я использую Node и Mongoose для подключения к нему.

В моем методе я вызываю model.find({}), чтобы получить все записи, а затем перебираю их, чтобы найти ту, которая мне нужна (это внутри цикла - я думаю, что будет более эффективно ударить по БД один раз, а затем обработать в памяти чтобы каждый раз не подключаться к базе данных).

Когда я console.info совпадение, я получаю распечатку всего объекта. Однако когда я распечатываю одно свойство, оно отображается как неопределенное. Это свойство представляет собой массив, и это происходит с другим свойством, имеющим массив, который я добавил в качестве теста. Что мне здесь не хватает?

Вот мой фрагмент кода:

 Documents.find({}).then(docsData => { // Documents is my model
      docs.entries.forEach(entry => { // docs.entries is the collection I want to match to
        const match = docsData.find(
          doc => doc['dropboxId'] == entry['id']
        );
        if (match) {

          entry['tags'] = match.tags;
          console.info('match tags', match.tags); // this prints out undefined
          console.info('match', match); // this prints out the object with tags
        }

Любые идеи?

попробуйте получить доступ к элементу с помощью записи массива console.info ('match tags', match ["tags"]); // это распечатает

Vipul 18.08.2018 05:35

Я пробовал это :(

MsGirlPerl 18.08.2018 05:57
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
2
133
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

match - это документ Mongoose, который отличается от обычного объекта JS. Думаю, вам нужно сделать:

entry['tags'] = match.get('tags');

Спасибо! Это работает. Можете ли вы указать мне на документацию, которая предлагает это?

MsGirlPerl 18.08.2018 20:53

Другие вопросы по теме