0

Collection:

docs:
  _id
  name

Code:

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

But I would like the findOne queries to be sent off in parallel.

Loren
  • 13,903
  • 8
  • 48
  • 79

2 Answers2

2

A possibly easier alternative is to use $in and do the parallel query on the database itself. Here's an example in CoffeeScript:

ids = ['abc123', 'def456', 'hij789']
names = (doc.name for doc in Docs.find({_id: $in: ids}, {fields: name: 1}).fetch())
David Weldon
  • 63,632
  • 11
  • 148
  • 146
1

You can restrict your query to a certain subsets of fields, e.g.

names = _.pluck(Docs.find({_id:{$in:doc_ids}}, {
  fields: {name:1}
}).fetch(), 'name');
Tomasz Lenarcik
  • 4,762
  • 17
  • 30