Mongoose - 查询以获取文档的所有子文档
Posted
技术标签:
【中文标题】Mongoose - 查询以获取文档的所有子文档【英文标题】:Mongoose - query to get all subdocuments of a document 【发布时间】:2017-02-28 00:14:11 【问题描述】:我对猫鼬很陌生,我有一个公司列表,每个公司都有一个用户子数组。我只想用猫鼬检索特定公司的所有用户:
一家公司就像
"_id": "57ffa47f5b70f90831212348",
"name": "mycompany",
"address": "...",
"phone": "...",
"users": [
"_id": "57ffa47f5b70f90831212347",
"username": "alpha",
"name": "myname",
"surname": "mysurname",
"password": "..."
]
我试过了
Company.findOne(
'name': req.user.name
)
.aggregate($unwind: '$users')
.exec(
function(err, users)
if (err) res.status(500).send(err);
res.json(users);
);
但我没有运气...我不确定如何正确使用聚合。
【问题讨论】:
【参考方案1】:只需填写 company.users
Company.findOne(
'name': req.user.name
)
.populate('users', 'username name surname')
.exec(
function(err, company)
if (err) res.status(500).send(err);
res.json(company.users);
);
【讨论】:
感谢它有效!它也可以使用.populate('users')
。你知道我在哪里可以找到关于populate
和aggregate
的很好的解释吗?
Mongoose Docs 当然,populate('users')
不太安全,你可能会发送敏感数据(密码,passwod_hash)
我试过了,但我发现它不是很清楚......无论如何,感谢您提供有关安全性的提示
另外,没有搜索,什么也没有以上是关于Mongoose - 查询以获取文档的所有子文档的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose,在子文档数组上应用`.aggregate()`,并以最少的查询次数获得文档其他字段的结果