Почему я получаю эту ошибку при попытке получить длину массива в mongodb? - PullRequest
0 голосов
/ 28 октября 2018

с использованием npm MongoDB (собственный диск MongoDB) "mongodb": "^ 3.1.8",

Когда я использую Robo 3T, чтобы получить размер массива, он работает нормально, и я получаю длинумассив.Тем не менее, я получаю следующую ошибку в nodejs:

UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'length' of undefined

Вот ошибка длиной:

const getLength = (query) => {
    db = Connection.db.collection('tweets');
    return new Promise((resolve, reject) => {
        let lengthOfData = db.findOne({key: query}).tweets.length
        resolve(lengthOfData);
    });
}

Это рисунок запроса в Robo 3T:

enter image description here

1 Ответ

0 голосов
/ 28 октября 2018

FindOne уже возвращает обещание (http://mongodb.github.io/node-mongodb-native/3.1/api/Collection.html#findOne):

const getLength = key => Connection
  .db
  .collection('tweets')
  .findOne({ key })
  .then(item => item.tweets.length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...