如何在Meteor中并行执行数据库查询?

时间:2013-11-26 00:54:58

标签: meteor node-fibers

收集:

docs:
  _id
  name

代码:

names = Docs.findOne(id).name for id in doc_ids

但我想将findOne查询并行发送。

2 个答案:

答案 0 :(得分:2)

可能更容易的替代方法是使用$in并对数据库本身执行并行查询。以下是CoffeeScript中的一个示例:

ids = ['abc123', 'def456', 'hij789']
names = (doc.name for doc in Docs.find({_id: $in: ids}, {fields: name: 1}).fetch())

答案 1 :(得分:1)

您可以将查询限制为某些字段子集,例如

names = _.pluck(Docs.find({_id:{$in:doc_ids}}, {
  fields: {name:1}
}).fetch(), 'name');