node.js - mongoose.find() - 为什么嵌套数组返回为 [Object]
问题描述
在成员模式的猫鼬模型中,有一个嵌套数组。当我使用 model.find() 方法获取集合中的所有文档时,它将嵌套数组作为对象返回。因此我无法在有角的前端使用它。
请让我知道我哪里出错了。
猫鼬模型
const memberSchema = mongoose.Schema({
aptNumber: { type:String, required: true },
wing: String,
floor: { type:Number, required: true },
sqFt: { type:Number, required: true },
owners: [{
title: String,
fullName: String,
role: String,
mobile: String,
email: String,
}],
});
节点路由
router.get('/', authorize(), memberCtlr.getMembers)
节点控制器
exports.getMembers = (req, res, next) => {
let fetchedDocs;
// memberService.getMembers()
Member.find()
.then(documents => {
fetchedDocs = documents;
console.log('Member.find(): ', fetchedDocs) // <<<<< see below the result of this
return Member.countDocuments();
})
.then(count => {
res.status(200).json({
members: fetchedDocs,
totalCount: count
});
})
.catch(err => {
res.status(500).json({
message: "Server Error in fetching Clients data!"
});
});
}
console.log 的结果
{
_id: 5ff312bfe944f205b03b19b4,
aptNumber: '102',
floor: 1,
sqFt: 700,
owners: [ [Object] ], <<<< WHY THIS is returned as Object
__v: 0
}
解决方案
将 .lean() 添加到您的查询中。
前任 :
Member.find().lean() // <<<< Add it here
.then(documents => {
fetchedDocs = documents;
console.log('Member.find(): ', fetchedDocs) // <<<<< see below the result of this
return Member.countDocuments();
})
.then(count => {
res.status(200).json({
members: fetchedDocs,
totalCount: count
});
})
.catch(err => {
res.status(500).json({
message: "Server Error in fetching Clients data!"
});
});
推荐阅读
- c - 如何将 char 指针值分配给整数/char 变量或数组
- javascript - json stringify writeStream完成后如何解决promise?
- gitlab - Gitlab 每个环境单独的容器注册表
- skia - 如何编译skia中包含的HelloWorld应用程序?
- javascript - 从单元格获取值(多个电子邮件地址)时出错
- scala - 以 Map 作为输入的 Spark UDF
- jhipster - JHipster 从 6.1.2 升级到 6.2.0 的问题
- jquery - 无法在 ajax 调用中更改 a.text()
- c# - Firebase 保存数据的速度会随着时间的推移而变慢
- python - 我需要高效的 Django ORM 代码来减少查询命中