MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment exclure des résultats de recherche des documents avec des champs qui ne sont pas présents dans la requête ?

Je dois admettre que je ne connais aucune méthode d'interrogation normale permettant de résoudre ce problème. Il n'y a qu'une seule façon que je connaisse et c'est d'utiliser la comparaison d'objets MongoDBs. Pour ce faire, vous modifieriez votre structure pour qu'elle ressemble à :

{
    ps: [a,b]
}

ou :

{
    ps: {p1:a,p2:b}
}

Et puis vous interrogeriez comme :

db.col.find({ p: [a,b] })

ou :

db.col.find({ p: {p1:a, p2:b} })

Il y a cependant un problème immédiat avec cela. Cela dépend de l'ordre des clés, ce qui signifie que si votre a et b sont en fait l'inverse dans un autre document, il ne correspondra pas. Vous devrez donc vous assurer que vous vous souciez de la commande lors de l'enregistrement si vous le faites.

J'espère que ça aide,