Javascript 困难的承诺案例-帆船-MongoDB
我一直在读关于承诺的书。我想简化页面上的回调。我确实有一个问题。我在网上找不到任何与我的案例相符的材料 我有两个mongo系列。一个包含用户ID,另一个包含用户信息 首先我要拿到身份证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
{
"_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做什么,你都必须从回调函数内部做。