sql >> Databasteknik >  >> NoSQL >> MongoDB

Skillnad mellan dokumentbaserade och nyckel-/värdebaserade databaser?

De huvudsakliga skillnaderna är datamodellen och frågefunktionerna.

Nyckelvärdesbutiker

Den första typen är väldigt enkel och behöver förmodligen ingen ytterligare förklaring.

Datamodell:mer än nyckel-värdelagringar

Även om det finns en viss debatt om det korrekta namnet på databaser som Cassandra, skulle jag vilja kalla dem kolumnfamiljebutiker . Även om nyckel-värdepar är en viktig del av Cassandra, är det inte begränsat till just det. Det låter dig kapsla nyckel-värde-par, så en nyckel kan referera till flera undernyckel-värde-par.

Du kan dock inte kapsla nyckel-värdepar på obestämd tid. Du är begränsad till tre nivåer (kolumnfamiljer) eller fyra nivåer av häckning (superkolonnfamiljer). Om termen kolumnfamilj inte ringer en klocka, se WTF är en SuperColumn-artikel, det är en bra förklaring av Cassandras datamodell.

Dokumentdatabaser , som CouchDB och MongoDB lagrar hela dokument i form av JSON-objekt. Du kan tänka på dessa objekt som kapslade nyckel-värdepar. Till skillnad från Cassandra kan du kapsla nyckel-värdepar så mycket du vill. JSON stöder också arrayer och förstår olika datatyper, som strängar, siffror och booleska värden.

Frågor

Jag tror att kolumnfamiljbutiker endast kan frågas med nyckel eller genom att skriva kartförminska funktioner. Du kan inte fråga värdena som du skulle göra i en SQL-databas. Om din applikation behöver mer komplexa frågor måste din applikation skapa och underhålla index för att få åtkomst till önskad data.

Dokumentdatabaser stöder frågor med nyckel och kartreducerande funktioner också, men låter dig också göra grundläggande frågor efter värde, som "Ge mig alla användare med fler än 10 inlägg". Dokumentdatabaser är mer flexibla på detta sätt.



  1. Beställer en resultatuppsättning slumpmässigt i mongo

  2. Mongo C# JSON-läsaren förväntade sig ett värde men hittade 'replSetGetStatus'

  3. hur mongoimporterar man data till utplacerad meteorapp?

  4. Redis - Sorterad uppsättning, hitta objekt efter egenskapsvärde