javascript - 解构第一个数组项或如何强制 Mongoose 返回对象而不是单项数组

标签 javascript mongoose ecmascript-6

Mongoose 的 .find 方法即使找到一个结果也会返回 Array,这是符合逻辑的

但例如我确定结果是 1 项或空数组

我如何解构结果或请求 Mongoose 这样做?

Payments
  .find({ ... })
  .sort({ ... })
  .limit(1)
  .then(result => {
    result = result[0]; // need to write more conditions, this may throw an exception when array is empty
  })

最佳答案

此案例并非 Mongoose 特有。

它可以是:

.then(results => {
  if (results.length) {
    const [result] = results;
    ...
  }
});

或者:

.then(([result]) => {
  if (result) {
    ...
  }
});

这两种方式在 Mongoose 中都有效,因为如果结果存在,则预期结果是真实的。

关于javascript - 解构第一个数组项或如何强制 Mongoose 返回对象而不是单项数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49968019/

相关文章:

node.js - 电商网站中数量有限的商品如何管理剩余商品数量?

javascript - 如何在 javascript 集中执行不区分大小写的查找?

javascript - 执行更新用户突变时出现问题

javascript - 从快速 session 成功进行身份验证后如何在 react 客户端上验证 session

mongodb - 当每个字段都可搜索和可排序时,如何在 MongoDB 上正确构建索引?

node.js - 如何使用 Mongoose 向现有文档添加属性?

javascript - Node 14 : Import modules using an absolute path for native ES6 module

javascript - 如何查找对象数组中的属性并将这些对象移动到对象中的另一个数组?

javascript - 使用 jQuery 从 DOM 中删除 HTML 元素

javascript - 对于在 for..in 中检测到的属性,propertyIsEnumerable 记录 false