作为另一个问题的一部分,我正在尝试推广一个mongo / mongoose查找查询。我在搜索栏中找不到什么帮助。该查询在下面,我正在运行此查询作为express中控制器的一部分。设置为route-> userController.monitor,它需要包含查询
在寻求其他问题的帮助时,尽管我进行了SO搜索以及我自己尝试使之成真的尝试,但我还是被要求promisify find so that you can use await for it (like const incidents = Incident.find({fooID}).exec();
。
查询:
Incident.find({fooID})
.exec((err, incidents) => {
// do something
})
注意,在这种情况下,findOne将不起作用,因为几乎所有时间都将返回多个文档
编辑
Incident.find({monitorID,createdAt:{$ gte:sevenAgo}})]
您可以使用node.js的promisify
模块中的util
函数来创建查找函数的承诺版本>
const { promisify } = require('util')
const promisifiedIncidentFindExec = payload => {
const query = Incident.find(payload)
return promisify(query.exec).call(query)
}
const incidents = await promisifiedIncidentFindExec({
monitorID: 'monitorID',
createdAt: { $gte: 'sevenAgo' },
})
// do something