2016-11-07 4 views
0

J'ai une requête mongo comme ce qui suit:

db.membership.find({ "$match" : { "members.sourcedid.id" : "0144401" , "sourcedid.path.store" : "0985" , "sourcedid.path.campus" : "2E3A9B7C-6C8E-433C-85FC-4632FD7C90CD"}}) 

Il ne renvoie aucun résultat.

Mais si j'exécutez ce qui suit, il renvoie le résultat:

db.membership.find({ "members.sourcedid.id" : "0144401" , "sourcedid.path.store" : "0985" , "sourcedid.path.campus" : "2E3A9B7C-6C8E-433C-85FC-4632FD7C90CD"}) 

Je ne sais pas pourquoi cela se passe. Quelqu'un peut-il aider? Je suis nouveau à mongodb

Merci.

Répondre

1

Il ne donne aucun résultat, car l'opérateur $match est uniquement applicable au cadre d'agrégation et non pas dans la méthode find().

peut exécuter la requête ci-dessus en utilisant la méthode aggregate() comme

db.membership.aggregate([ 
    { 
     "$match" : { 
      "members.sourcedid.id": "0144401", 
      "sourcedid.path.store": "0985", 
      "sourcedid.path.campus": "2E3A9B7C-6C8E-433C-85FC-4632FD7C90CD" 
     } 
    } 
])