为什么在mongodb中尝试获取数组的长度时出现此错误?

时间:2018-10-28 12:53:30

标签: node.js mongodb mongodb-query

使用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 :(得分:0)

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);