2012-12-13 4 views
0

Je veux diviser mes longues requêtes en mongodb par exemple en utilisant plutôt db.users.find (q) dans le code suivant, je veux utiliser une version de concaténation comme celle-ci db.users.find (q0 + q1) ou de toute autre manière que je peux diviser en deux requêtes qConcaténer deux requêtes dans mongodb

q= {},{name:1,"education.school.name":1,"education.type":1} 
db.users.find(q) 
q0={} 
q1={name:1,"education.school.name":1,"education.type":1} 
q=q0+","+q1 
db.users.find(q) 

Comment dois-je faire quelque chose comme ça?

+0

De quel langage de programmation parlons-nous? –

+0

mongodb, n'utilisant aucun code Java – user1848018

Répondre

0

Vos clauses sont quelque peu ambigus il (vos q et q0 sont les deux objets vides), mais vous voudrez peut-être l'opérateur $or

db.users.find(
    $or: [ 
    {name:1,"education.school.name":1,"education.type":1}, 
    {age:1,"education.school.name":2,"education.type":2} 
    ] 
) 

Ça va retourner l'union ensemble de ces deux requêtes. Cela dit, en fonction de ce que vous voulez réellement faire, vous pouvez utiliser $in avec un tableau de valeurs à rechercher par champ, si vous voulez juste chercher sur plusieurs valeurs.

+0

mais comment avoir q0 = {nom: 1, "education.school.name": 1, "education.type": 1} et q1 = {age: 1, "education.school. name ": 2," education.type ": 2}, comment utiliser q0 et q1 dans le fichier db.users.find? – user1848018

+0

Si vous avez deux clauses, le '$ or' est approprié. –

+0

J'ai essayé db.users.find ($ ou: [q0, q1]) où q0 et q1 les requêtes ci-dessus, j'ai essayé quelques combinaisons mais aucune n'a fonctionné – user1848018