sql >> Database >  >> NoSQL >> MongoDB

NoSQL - MongoDB versus CouchDB

Zie volgende links

Bijwerken :Ik vond een geweldige vergelijking van NoSQL databases.

MongoDB (3.2)

  • Geschreven in:C++
  • Belangrijkste punt:JSON-documentopslag
  • Licentie:AGPL (stuurprogramma's:Apache)
  • Protocol:Aangepast, binair (BSON)
  • Master/slave-replicatie (automatische failover met replicasets)
  • Sharding ingebouwd
  • Query's zijn javascript-expressies
  • Voer willekeurige javascript-functies server-side uit
  • Heeft geospatiale indexering en zoekopdrachten
  • Meerdere opslagengines met verschillende prestatiekenmerken
  • Prestaties boven functies
  • Documentvalidatie
  • Journalen
  • Krachtig aggregatieraamwerk
  • Op 32-bits systemen, beperkt tot ~2,5 GB
  • Geïntegreerd zoeken naar tekst
  • GridFS om big data + metadata op te slaan (niet echt een FS)
  • Datcenter bewust

Best gebruikt :Als u dynamische queries nodig heeft. Als u liever indexen definieert, geen functies toewijzen/verkleinen. Als je goede prestaties nodig hebt op een grote DB. Als je CouchDB wilde, maar je gegevens veranderen te veel, waardoor schijven vol raken.

Bijvoorbeeld :Voor de meeste dingen die je zou doen met MySQL of PostgreSQL, maar het hebben van vooraf gedefinieerde kolommen houdt je echt tegen.

CouchDB (1.2)

  • Geschreven in:Erlang
  • Belangrijkste punt:DB-consistentie, gebruiksgemak
  • Licentie:Apache
  • Protocol:HTTP/REST
  • Bidirectionele (!) replicatie,
  • continu of ad-hoc,
  • met conflictdetectie,
  • dus master-master replicatie. (!)
  • MVCC - schrijfbewerkingen blokkeren geen leesbewerkingen
  • Vorige versies van documenten zijn beschikbaar
  • Crash-only (betrouwbaar) ontwerp
  • Heeft af en toe verdichting nodig
  • Beelden:ingesloten kaart/verkleinen
  • Weergaven opmaken:lijsten en shows
  • Server-side documentvalidatie mogelijk
  • Authenticatie mogelijk
  • Realtime updates via '_changes' (!)
  • Behandeling van bijlagen

Best gebruikt :Voor het verzamelen van, af en toe wijzigende gegevens, waarop vooraf gedefinieerde query's moeten worden uitgevoerd. Plaatsen waar versiebeheer belangrijk is.

Bijvoorbeeld :CRM, CMS-systemen. Master-master-replicatie is een bijzonder interessante functie, die eenvoudige implementaties op meerdere locaties mogelijk maakt.



  1. het importeren van mangoestschema in een ander schemabestand maakt het geïmporteerde schema niet gedefinieerd

  2. Mongo Query geneste veldwaarden met onbekende bovenliggende sleutels op twee niveaus

  3. Mongoes meerdere verbindingen

  4. Bestel en beperk resultaten in een vraag met een terugbelverzoek