2014-04-19 2 views
1

J'ai un tableau d'ID et je veux trouver des entrées qui correspondent à une chaîne incluse dans l'ID. Par exemple: Mon tableau:

[ytn3z7ci2c6JQyKad, p3WxcY9Le79Eph8vM] 

Et je veux trouver toutes les entrées qui correspondent à:

[ytn3z7ci2c6JQyKad-letter1, ytn3z7ci2c6JQyKad-letter2, p3WxcY9Le79Eph8vM-letter1, p3WxcY9Le79Eph8vM-letter2] 

Est-il possible d'y parvenir sans modifier le tableau? Peut-être utiliser l'opérateur $ in en combinaison avec $ regex ou $ where?

Toute aide serait grandement appréciée.

+0

Pourriez-vous préciser votre question et comprennent un exemple précis? Ce n'est pas clair ce que vous cherchez à faire. – JohnnyHK

+0

S'il vous plaît voir mon commentaire ci-dessous. :) Merci – user3475602

Répondre

0

Je ne sais pas si j'ai bien compris votre question.

Essayez d'utiliser $ ou conjointement avec $ regex

db.fun.find({$or:[{names:{$regex:arr[0]}}, {names:{$regex:arr[1]}} ]}) 

Lorsque les valeurs du tableau sont filtrés dans la requête, par défaut MongoDB loos pour un match de valeur

+0

Bonjour, merci pour votre aide. Malheureusement, cela ne fonctionne pas pour moi. Je l'ai utilisé comme ceci: 'Letters.find ({$ or: {{name: {$ regex: lettersArray}}}});'. Il retourne chaque entrée dans la collection Lettres. Mon problème est que je ne veux pas modifier le tableau. Pour clarifier ceci: 'lettersArray [0] = ytn3z7ci2c6JQyKad',' lettersArray [1] = p3WxcY9Le79Eph8vM'. Maintenant je veux filtrer seulement les noms dans ma collection de Lettres qui correspondent "ytn3z7ci2c6JQyKad-letter1" et "ytn3z7ci2c6JQyKad-letter2", sans modifier le tableau (en ajoutant la chaîne à la fin de chaque entrée). – user3475602