MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie kann man Dokumente aus den Suchergebnissen ausschließen, deren Felder nicht in der Abfrage vorhanden sind?

Ich muss zugeben, dass ich keine normale Abfragemethode kenne, mit der dieses Problem gelöst werden könnte. Mir ist nur eine Möglichkeit bekannt, nämlich den Objektvergleich von MongoDB zu verwenden. Um dies zu tun, würden Sie Ihre Struktur so ändern, dass sie etwa so aussieht:

{
    ps: [a,b]
}

oder:

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

Und dann würdest du fragen wie:

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

oder:

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

Es gibt jedoch ein unmittelbares Problem damit. Es ist abhängig von der Schlüsselreihenfolge, was bedeutet, dass wenn Ihr a und b in einem anderen Dokument tatsächlich umgekehrt sind, wird es nicht übereinstimmen. Wenn Sie dies tun, müssen Sie also beim Speichern auf die Reihenfolge achten.

Hoffe es hilft,