Javascript 困难的承诺案例-帆船-MongoDB

Javascript 困难的承诺案例-帆船-MongoDB,javascript,arrays,mongodb,promise,sails.js,Javascript,Arrays,Mongodb,Promise,Sails.js,我一直在读关于承诺的书。我想简化页面上的回调。我确实有一个问题。我在网上找不到任何与我的案例相符的材料 我有两个mongo系列。一个包含用户ID,另一个包含用户信息 首先我要拿到身份证 { "_id" : ObjectId("5883ee4ed09e16a01aca63dc"), "logo" : "logo.png", "shortname" : "CSGO", "longname" : "Counter-Strike: Global Offensive", "starttime" : ISO

我一直在读关于承诺的书。我想简化页面上的回调。我确实有一个问题。我在网上找不到任何与我的案例相符的材料

我有两个mongo系列。一个包含用户ID,另一个包含用户信息

首先我要拿到身份证

{
"_id" : ObjectId("5883ee4ed09e16a01aca63dc"),
"logo" : "logo.png",
"shortname" : "CSGO",
"longname" : "Counter-Strike: Global Offensive",
"starttime" : ISODate("2017-05-19T15:00:00Z"),
"status" : "Status",
"limit" : 5,
"teams" : [
    {
        "teamid" : ObjectId("5883faa13e72bb7c80b4f698"),
        "leaderid" : ObjectId("5883ee8f0cfc03217d0e6329"),
        "teamname" : "NAKdSquad",
        "locked" : false,
        "members" : [
            ObjectId("5883ee8f0cfc03217d0e6329")
        ]
    },
    {
        "teamid" : ObjectId("5884dd29b0dd0074050f2ef3"),
        "leaderid" : ObjectId("5883f4d7e87c76c06cff8f56"),
        "teamname" : "tomasSquad",
        "locked" : false,
        "members" : [
            ObjectId("5883f4d7e87c76c06cff8f56")
        ]
    }
]
}
我需要获取的ID在一个数组中,在一个数组中。“团队,成员”。 目前,我使用以下字符串来获取ID

Turneringer.native(function (err, collection) {
    if (err) sails.log(err)

    collection.find({
        shortname: shortname,
        'teams.members': {
            $in: [ ObjectId(userid) ]
        }
    }, {
        _id: 0,
       'teams.members.$': 1
    }).toArray(function (err, resultTeam) {
       if (err) sails.log(err)
       sails.log(JSON.stringify(resultTeam))
       return resultTeam
    })
})
结果:

[{"teams":[{"teamid":"5884dd29b0dd0074050f2ef3","leaderid":"5883f4d7e87c76c06cff8f56","teamname":"tomasSquad","locked":false,"members":["5883f4d7e87c76c06cff8f56"]}]}]`
ID以数组的形式出现,因此我需要使用某种循环。我尝试了
.each
.forEach
&
。然后在
中加入了each循环,但似乎不是我的解决方案

我需要帮助来找出如何循环成员,这样我就可以从另一个集合中获得Nick列表

有人能帮我一起打造这个吗我已经试了好几个小时了,现在一片空白

致意 奥卡斯托夫

编辑:

这是我努力过的承诺

Turneringer.native(function (err, collection) {
    if (err) sails.log(err)

    collection.find({
        shortname: shortname,
        'teams.members': {
            $in: [ ObjectId(userid) ]
        }
    }, {
        _id: 0,
        'teams.members.$': 1
    }).toArray(function (err, resultTeam) {
        if (err) sails.log(err)
        sails.log(JSON.stringify(resultTeam))
        return resultTeam
    })
}).forEach(function (result) {
    sails.log(result)
    ^This gives error 'TypeError: Cannot read property 'forEach' of undefined'
})

你能展示一下你的尝试吗,否则你只能得到关于使用
Array#reduce
Array#map
Promise的非常一般的答案。所有的
为了更好地解决这个问题,请展示更多的代码。这就是我得到的。我的承诺不起作用。但是我在文章的底部插入了它,无论你想用ResultItem做什么,你都必须从回调函数内部做。