javascript - mongodb 将参数传递给集合 find

标签 javascript node.js mongodb arguments

我正在尝试将函数的参数传递给 mongodb 集合 find。像这样:

async find() {
  try {
    return await db.collection('users').find.apply(null, arguments);
  } catch(err) {
    console.error(err);
  }
}

返回

TypeError: Cannot read property 's' of null at Collection.find (/localpath/node_modules/mongodb/lib/collection.js:282:22)

我可以跑

await db.collection('users').find()

并且光标正在返回。因此连接和收集已正确设置。

我在这里没有得到什么?

最佳答案

您要应用的第一个参数为空,但不可能。

我建议您将引用作为第一个参数传递给 apply,或者改为解开参数:

await db.collection('users').find(...arguments)
<小时/>

澄清 null 作为 apply 的第一个参数有何影响......

// will log "hello"
({foo:function(){console.log(this.bar)}, bar:'hello'}).foo()

// will log undefined
({foo:function(){console.log(this.bar)}, bar:'hello'}).foo.apply(null)

关于javascript - mongodb 将参数传递给集合 find,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44847956/

相关文章:

javascript - 背景颜色改变onclick重构

java - 如何使用 Java 脚本将 docID 从一个 NotesDocument 添加到另一个 NotesDocument

javascript - 在 javascript 序列表达式中声明变量

node.js - 使用 Socket.io 连接到特定的服务器 IP

javascript - 如何在 promise 解决时处理 promise ?

java - 如何根据某些特定条件检索深度嵌套数组 spring mongodb

javascript - ReactJS/JS 保存/导出表单输入

javascript - Node.js 和 Express : How to create many app. 通过 "for loop"与 Express.js 进行调用?

mongodb - 获取数组中的第一个元素并使用聚合返回?

angularjs - 使用等待时 Node 响应中的复制问题