循环遍历数组并执行MongoDB查询(NodeJS)
Looping through array and executing MongoDB query (NodeJS)
我有一个对象名称配置文件,它包含一个收藏数组,看起来像这样…
{favorites: [
{ name: 'Love Song',
id: 'Itja90E2tIE'},
{ name: 'I Need Your Love',
id: 'AtKZKl7Bgu0'}
]}
我想循环遍历该数组,获取每个收藏的id,并在我的mongo DB的歌曲集合中为该id执行.find(),获取歌曲的艺术家,并将其添加到数组中。
我试过…
for(var i=0; i<profile.favorites.length; i++) {
db.songs.find({"_id" : profile.favorites[i].id}, {"artistName" : 1}, function (e, result){
profile.favorites[i]["artistName"] = result[0].artistName;
});
}
但这似乎不起作用,(主要是因为Mongo/MongoJs是异步的)
做这样的事情的正确方法是什么?
可以使用$in
查询与指定数组中任意值匹配的字段。
favoritesId = favorites.map(function(favorite){ return favorite.id; });
db.songs.find({ _id: { $in: favoritesId }}, function(err, songs){
// do you favor
});
相关文章:
- nodejs正在解析请求的文本查询
- nodejs API 查询如何访问数据
- 将数据库查询存储在nodejs中(使用socket.io)
- 如何在nodejs中的MySQL查询中使用多个变量
- NodeJS为什么MySQL查询的结果没有推送到我的表中
- NodeJS + mysql:选择返回单个对象的查询
- Nodejs 和 mysql,一个查询中的多个条件
- 如何将传递给 nodejs 的查询字符串转发到通过 res.render 提供的页面
- 如何查询 NodeJS 流“元数据”
- 在 NodeJS 中使用 aysync 对 oracleDB 进行同步查询
- NodeJS 等到 mySQL 查询完成
- Nodejs 查询数据和代码组织
- 如何在nodejs/MongoDB中执行OR操作查询
- NodeJS和MySQL第一次查询后出现Getting 500错误
- "其中在“;nodejs中的MySQL查询
- Nodejs-Mysql:"SyntaxError:意外的输入结束“;如果查询包含'其中'
- 函数newbie查询中的nodejs回调
- 如何在nodejs中使用mongose加速查询mongdb
- NodeJS-如何通过执行查询获得mysql结果
- 循环遍历数组并执行MongoDB查询(NodeJS)