Utilisez un mannequin pour trouver par des propriétés de documents imbriqués

J'ai actuellement une collection de documents contenant chacun des tableaux indiquant d'autres documents dans cette collection. Je dois interroger cette collection pour obtenir des documents où ceux qui sont imbriqués dans des tableaux contiennent une certaine propriété. J'espère que cela expliquera plus clairement ma demande:

if doc.list1[0].prop = 'foo' or doc.list2[0].prop = 'foo' then select doc 

J'ai essayé d'utiliser .find () comme ça, mais sans succès.

 { 'doc.list1': 'foo', $or: [ { 'doc.list2': 'foo' } ] } 

Suis-je sur la bonne voie? Parce que je ne pense pas que je le suis. C'est le meilleur que je peux lire à partir de la documentation.

modifier

Voici mon initialisation de requête réelle utilisant la même mise en page que la suggestion de Thomas.

 var query = this.Word.find({ $or: [ { 'before.0.cleanWord': topic }, { 'after.0.cleanWord': topic }, { 'cleanWord': topic } ] }); 

 { $or: [ { 'doc.list1.0.prop': 'foo' } { 'doc.list2.0.prop': 'foo' } ] } 

http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-%24or