Je ne savais pas trop comment intituler ce texte !
J'ai donc un tableau d'identifiants de produits
var productIds = [139,72,73,1,6]
Et un ensemble de documents de clients dans MongoDB
{
name: 'James',
products: [ 73, 139 ],
_id: 5741cff3f08e992598d0a39b
}
{
name: 'John',
products: [ 72, 99 ],
_id: 5741d047f08e992598d0a39e
}
J'aimerais trouver des clients lorsque tous leurs produits apparaissent dans le tableau des ID de produits (productIds).
J'ai essayé :
'products' : {
'$in': productIds
}
Mais cela renvoie John, même si 99 n'existe pas dans la liste des identifiants de produits.
J'ai également essayé :
'products' : {
'$all': productIds
}
Ce qui ne rapporte rien car aucun des clients n'a TOUS les produits.
Existe-t-il un moyen d'obtenir ce dont j'ai besoin en une seule requête ou vais-je devoir effectuer un traitement post-requête ?
J'ai également essayé
'products': {
'$in': productIds,
'$not': {
'$nin': productIds
}
}
mais cela semble également renvoyer les clients lorsque les identifiants des produits ne correspondent pas tous.