sql >> Databasteknik >  >> NoSQL >> MongoDB

förbund på samma samling i mongodb

Den MongoDB-operatör som ligger närmast det du letar efter är en $or , men det är inte riktigt detsamma som en SQL UNION som kombinerar två separata frågor till ett enda resultat. MongoDB-frågor är alltid mot en enda samling, men $or låter dig ha flera frågesatser.

Till exempel:

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}
)

Eftersom du är begränsad till att fråga efter en enskild samling kommer resultaten redan att dedupliceras på dokumentnivå och alla resultat kommer att dela samma sorteringsordning om en sådan anges.

Om du vill simulera en UNION (eller annan operation som arbetar med flera samlingar/frågor) i MongoDB, måste du skriva flera frågor och slå samman resultatuppsättningarna i din applikationskod.




  1. Vad är det mest effektiva kommunikationsbiblioteket/metoden för node.js mellan processer?

  2. Försöker lösa beroenden:Ändra .NET Standard Library till NET Core - Microsoft.Extensions.Primitives

  3. Mongodb matchar karaktärer med accent som underliggande karaktär

  4. Hur uppdaterar jag dokumentfält i mongo db med java-drivrutinen?