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

Union auf derselben Sammlung in Mongodb

Der MongoDB-Operator, der dem, was Sie suchen, am nächsten kommt, ist ein $or , aber das ist nicht ganz dasselbe wie eine SQL UNION, die zwei separate Abfragen zu einem einzigen Ergebnis kombiniert. MongoDB-Abfragen beziehen sich immer auf eine einzelne Sammlung, aber $or ermöglicht Ihnen mehrere Abfrageklauseln.

Zum Beispiel:

db.collection.find(
    // Find documents matching any of these values
    {$or:[
        {var1: 123},
        {var2: 456},
        {var3: 789}
    ]}
).sort(
    // Sort in ascending order
    {var1:1, var2:1, var3:1}
)

Da Sie auf die Abfrage einer einzelnen Sammlung beschränkt sind, werden die Ergebnisse bereits auf Dokumentebene dedupliziert und alle Ergebnisse haben die gleiche Sortierreihenfolge, falls eine angegeben ist.

Wenn Sie eine UNION (oder eine andere Operation, die mit mehreren Sammlungen/Abfragen arbeitet) in MongoDB simulieren möchten, müssen Sie mehrere Abfragen schreiben und die Ergebnismengen in Ihrem Anwendungscode zusammenführen.