Javascript node.js mongodb find()将结果发送到数组,但不使用.filter

Javascript node.js mongodb find()将结果发送到数组,但不使用.filter,javascript,node.js,mongodb,typescript,Javascript,Node.js,Mongodb,Typescript,我试图对从mongodb.find()返回的结果使用Array.filter(), 但它不起作用我遇到以下错误: (TS)类型“{}”上不存在属性“filter” 代码中的主要问题是,使用异步函数作为常规函数返回结果。异步函数返回一个承诺或接受回调,该回调在异步操作完成时调用。回调是回调地狱,所以最好使用ES7中添加的Promissions或async/await特性 固定代码,看起来可能是这样的: function find(collectionName: string, filter: an

我试图对从
mongodb.find()
返回的结果使用
Array.filter()
, 但它不起作用
我遇到以下错误:

(TS)类型“{}”上不存在属性“filter”


代码中的主要问题是,使用异步函数作为常规函数返回结果。异步函数返回一个承诺或接受回调,该回调在异步操作完成时调用。回调是回调地狱,所以最好使用ES7中添加的Promissions或
async/await
特性

固定代码,看起来可能是这样的:

function find(collectionName: string, filter: any = {}) {
    const MongoClient = require('mongodb').MongoClient;
    let url = "mongodb://localhost:27017/test";

    return MongoClient
      .connect(url)
      .then(db => db.collection(collectionName).find(filter, { _id: false }))
      .then(rs => rs.toArray())
      .finally(() => db.close());
}
注意,目前,
find
函数不接受
callback
参数,它返回一个承诺,所以要在调用代码时使用result,您应该创建一个承诺链:

find(...)
  .then(results => // TODO: use results here)
  .catch(err => // TODO: process error here);

代码中的主要问题是,使用异步函数作为常规函数返回结果。异步函数返回一个承诺或接受回调,该回调在异步操作完成时调用。回调是回调地狱,所以最好使用ES7中添加的Promissions或
async/await
特性

固定代码,看起来可能是这样的:

function find(collectionName: string, filter: any = {}) {
    const MongoClient = require('mongodb').MongoClient;
    let url = "mongodb://localhost:27017/test";

    return MongoClient
      .connect(url)
      .then(db => db.collection(collectionName).find(filter, { _id: false }))
      .then(rs => rs.toArray())
      .finally(() => db.close());
}
注意,目前,
find
函数不接受
callback
参数,它返回一个承诺,所以要在调用代码时使用result,您应该创建一个承诺链:

find(...)
  .then(results => // TODO: use results here)
  .catch(err => // TODO: process error here);