2010-12-29 4 views
2

J'ai un code qui ressemble à ceci (tout dans l'interpréteur MongoDB):Comment savoir si un tableau de valeurs est présent dans un tableau dans une collection mongodb?

var needed_skills = ['mongodb','javascript','c++','php'] 

db.applicants.save({ name:'joe', skills:['c++','ruby','css'] }); 
db.applicants.save({ name:'peter', skills:['mongodb','javascript','c++','php','html'] }); 

Comment dois-je faire une requête qui trouve le demandeur toutes les compétences requises? Fondamentalement, je suis à la recherche de documents qui ont tous les membres du tableau présents dans un tableau donné. Je sais que vous pouvez faire quelque chose comme ça pour trouver si vous voulez trouver un membre:

db.applicants.find({skills:'mongodb'}) 

Cependant qui est correspondant à une seule, où que je veux correspondre tous ...

Toute aide être grandement apprécié.

Répondre

4

Vous voulez utiliser $all:

db.applicants.find({skills: {$all: ['mongodb','javascript','c++','php','html']} }); 

ou

var needed_skills = ['mongodb','javascript','c++','php'] 

db.applicants.find({skills: {$all: needed_skills} }); 
+0

wow qui était simple ... merci beaucoup Kai – Travis

+0

np, mis à jour la réponse à inclure une requête qui utilise un raccourci variable tableau au lieu d'un tableau littéral. – Kai

Questions connexes