Mongoose的.find
方法返回Array,即使找到了一个结果,也就是逻辑
但是例如我确定结果是1项或空数组
我如何解构结果或乞求猫鼬做到这一点?
Payments
.find({ ... })
.sort({ ... })
.limit(1)
.then(result => {
result = result[0]; // need to write more conditions, this may throw an exception when array is empty
})
答案 0 :(得分:1)
此案例并非针对Mongoose。
可以是:
.then(results => {
if (results.length) {
const [result] = results;
...
}
});
或者:
.then(([result]) => {
if (result) {
...
}
});
这两种方式在Mongoose中都有效,因为如果它存在,结果预计是真实的。
答案 1 :(得分:1)
您可以使用findOne
方法,而不是限制查询结果:
Payments
.findOne({ ... })
.sort({ ... })
.then(result => {
// ...
})