sql >> Database teknologi >  >> NoSQL >> MongoDB

fagforening på samme samling i mongodb

Den MongoDB-operatør, der er tættest på det, du leder efter, er en $or , men det er ikke helt det samme som en SQL UNION, der kombinerer to separate forespørgsler til et enkelt resultat. MongoDB-forespørgsler er altid mod en enkelt samling, men $or giver dig mulighed for at have flere forespørgselsklausuler.

For eksempel:

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 du er begrænset til at forespørge på en enkelt samling, vil resultater allerede være de-duplikeret på dokumentniveau, og alle resultater vil dele den samme sorteringsrækkefølge, hvis en er angivet.

Hvis du ønsker at simulere en UNION (eller anden operation, der arbejder med flere samlinger/forespørgsler) i MongoDB, bliver du nødt til at skrive flere forespørgsler og flette resultatsættene i din applikationskode.




  1. Håndhævelse af rollebaseret adgangskontrol med ClusterControl

  2. Hvordan lytter man efter ændringer til en MongoDB-samling?

  3. Kan du ikke få resultater fra Redis ved hjælp af Crud Repository i Spring Boot?

  4. Hvordan Redis-lister kan bruges til at implementere et chatsystem?