2013-02-23 5 views
1

c'est sur MongoDBUne seule requête ou plusieurs requêtes sur mongodb avec mongoskin ???

{cod_com:'WWWOAN', 
    cod_prod[{prod:'proda',info:'hola mundo'},{prod:'pacda',info:'hola mundo'},{prod:'prcdb',info:'hola mundo'}] 
} 
{cod_com:'WWWOA2', 
    cod_prod[{prod:'prdda',info:'hola mundo'},{ccod:'prcda',info:'hola mundo'}] 
} 
{cod_com:'WWWOA1', 
    cod_prod[{prod:'prcda',info:'hola mundo'},{aaad:'prcda',info:'hola mundo'}] 
} 

je dois obtenir l'information à l'intérieur des variables cod_prod ... donc im travaillant avec deux étapes

premier i interroger le propriétaire du cod_prod

db.collection.findOne({cod_com:'WWWOA1'}); 

si elle existe, j'interroger les cod_prod que j'ai besoin

db.collection.findOne({'cod_prod.prod':'prcda'}); 

donc fondamentalement im interroger deux fois, d'abord est le propriétaire du produit, et la seconde l'info du produit que l'im recherche ...

la question est, y a-t-il un moyen de rechercher le prod directement? ??

je ne peux pas utiliser ce ...

db.collection.findOne({'cod_prod.prod':'prcda'}); 

parce que différents propriétaires a même produit ... donc d'abord je reçois le propriétaire et le second que je reçois le produit ....

quelqu'un a une meilleure approche? ou une manière différente d'obtenir l'information ??? TNX

Répondre

1

Si vous interrogez comme ceci:

db.collection.findOne({'cod_com':'WWOA1', 'cod_prod.prod':'prcda'}); 

vous devriez obtenir le résultat souhaité.

+0

si je veux obtenir le cod_com qui contient 'cod_prod.prod': 'prcda', comment puis-je obtenir cette info ... l'information de propriétaire – andrescabana86

+0

la requête ne m'a pas donné le tableau ... me donne tout le document J'ai seulement besoin de l'info ... pas le document entier – andrescabana86

+1

Par défaut, la requête retourne toujours le document complet. Vous pouvez utiliser l'opérateur de projection $ elemMatch pour obtenir uniquement le premier élément de tableau correspondant. –

Questions connexes