2017-08-30 3 views
2

J'ai un tableau d'objets-objets représentés en tant que chaînes.Recherche de documents avec un tableau d'objetsID

["594c7a30f8f774268a2cdd14","594c7a30f8f774268a2cdd13"] 

Dans mon agrégation, je crée dynamiquement un objet de correspondance avec ce tableau avec d'autres champs.

match["_id"] = { $in: classes}; 

Cela ne fonctionne pas et je suppose que c'est juste becuase un tableau de chaînes au lieu de objectIds comme ObjectId (« 594c7a30f8f774268a2cdd14 »).

Comment créer la correspondance pour que la recherche _id fonctionne avec la baie?

Répondre

2

j'ai pu le faire fonctionner en changeant le match de

match["_id"] = { $in: classes}; 

à

match._id = { $in: classes.map(mongoose.Types.ObjectId)}; 

La fonction de la carte est ce que je avais besoin.