node.js - 如何使用 node.js 从 mongodb 返回整个数组(无过滤器!!!!!!)
问题描述
这是我的 mongodb 组文档。如您所见,我有一个_id,我用它来查找组本身、所有者、管理员数组和成员数组。
{
"_id": {
"$oid": "60c7246f61a6cc7527f815d2"
},
"groupName": "soogroo1",
"creationDate": "11/06/2020",
"premiumStatus": true,
"phone": "08741536329995757575757575757575577575757575",
"profilePic": "post-5f2a01e2-efe3-4fa0-8302-76bfd2d70b4b-1622806860268",
"owner": ["9b8bcd57-06eb-471c-8910-c5b944d02431"],
"admin": ["f2171431-627e-47a3-a65f-4abf48d361b6", "5e3df015-a1ed-4a63-a16e-83458d0e7da3", "f85baa4a-1015-4a5e-b1ed-b79001a9f277"],
"member": ["6b1233b2-098e-480b-9462-c010c8b8de06", "0bcbb92d-6276-4118-8576-9d5f5c4ed43b"]
}
基本上我已经搜索了整个万维网,寻找我能想到的最简单的最基本的东西之一,你如何在上帝的绿地上查询一个字符串数组,并返回整个数组。我想要做的就是传入一个组 id,指定我希望返回整个成员字段,然后就可以将成员映射到前端的列表,就像你在 instagram 上关注/关注者一样.
我所看到的所有地方都是使用对象数组的人和过滤数组的人以及所有那些bs,我只想要返回字符串的整个数组字符串。请帮我把头发拉出来哈哈。
顺便说一句,我在前端使用带有 express 和 reactJS 的 nodeJS(不相关)
vvvvv RELEVANT CODE vvvvv
文件夹名称:路线
文件名:groups.js
app.get("/groups/:groupId/members", (req, res)=>{
groups.getGroupsMembers(req.params.groupId).then(data=>{
res.send(data)
})
})
文件夹名称:主
文件名:groups.js
exports.getGroupsMembers = (groupId) => {
return myMongo.getGroupsMemberList("groups", groupId);
};
文件夹名称:主
文件名:mongo.js
vvvvvv (损坏的部分) vvvvvv
exports.getGroupsMemberList = (collection, groupId) => {
return db.collection(collection).findOne(
{ _id: ObjectID(groupId)},
).members
}
解决方案
我目前无法测试您的代码,但我想您的问题是因为您正在使用 .members 扩展查询,实际上并未从查询的返回值中获取成员属性。
exports.getGroupsMemberList = async (collection, groupId) => {
return await (db.collection(collection).findOne(
{ _id: ObjectID(groupId)},
)).members
}
我不确定 mongo 驱动程序是否接受 async/await,所以您可能需要通过回调来执行此操作..?
推荐阅读
- mysql - 如何在没有frm文件的情况下恢复mysql数据库
- wso2 - 无法执行示例axis2Client WSO2 EI 6.6.0
- unix - Unix 脚本 - CLI 输出和脚本输出不匹配
- excel - 从 Excel 中提取 Outlook 邮件时出错
- php - 如何在谷歌云 PHP 流包装器中将选项传递给 stream_open
- scala - 试图理解 scala ^^ 语法
- javascript - 打字稿展平复杂的嵌套数组
- flutter - 如何解决在颤动中导航到其他页面时底部导航栏丢失的问题
- javascript - 使用 Javascript 在 ssrs 中创建 POP UP 子报告不起作用
- python - 在 matplotlib 中保持两个数据集之间的差距