MongoDB
Die Abfrage-API.
Einfach, ausdrucksstark und einheitlich.
Eine flexible, intuitive Art, mit Daten zu arbeiten. Erstellen Sie Apps mit minimalem Code und maximaler Produktivität in der Sprache und dem Tool Ihrer Wahl.
Eine intuitive Benutzeroberfläche, die die Handhabung komplexer Daten-Workloads für beliebige Datentypen vereinfacht – einschließlich Arrays, Geodaten und Time Series – ermöglicht es Entwicklern, mit weniger Code mehr zu erreichen.
- Arbeiten Sie in Ihrer bevorzugten Sprache
- Eine einzige Schnittstelle für operative, analytische und Such-Workloads
Einfaches Arbeiten mit jedem Datentyp
Mit der MongoDB Query API haben Sie die volle Kontrolle über Ihre Daten. Sie wurde entwickelt, um jede beliebige Datenstruktur mühelos zu verarbeiten, einschließlich Key-Value, Graphen, Geodaten, Time Series und Objekte. Optimiert für eingebettete Arrays und Objekte, erschließen diese ausdrucksstarken Abfragefunktionen die Flexibilität des Dokumentmodells.
Steigern Sie die Produktivität mit einer einzigen Oberfläche
Nutzen Sie das volle Potenzial von Datenoperationen. Führen Sie wichtige Vorgänge durch, einschließlich Indizierung, Abfragen und Aktualisieren, alles über eine einzige, leistungsstarke API. Modernisieren Sie Ihre Anwendungen mithilfe von Transaktions-, Such- und Analyseabfragen, ohne zwischen Schnittstellen wechseln oder sich mit komplexer Abfragesyntax herumschlagen zu müssen.
Vereinfachen des Entwicklungsprozesses
Nutzen Sie Ihre bevorzugte Programmiersprache, um Daten abzufragen und zu aggregieren. Die MongoDB Abfrage-API enthält Treiber zur programmgesteuerten Erstellung von Abfragen und Aggregation Pipelines – damit entfällt die Notwendigkeit, eine neue Abfragesprache von Grund auf zu lernen.
Funktionen im Überblick
Ausdrucksstarke Abfrage
Verwenden Sie eine breite Palette leistungsstarker Operatoren wie $elemMatch und $geoWithin, um ein oder mehrere Dokumente basierend auf einer Kombination von Kriterien abzufragen und zu aktualisieren, auch innerhalb verschachtelter Arrays und Objekte.
Diverse Index-Typen
Optimieren Sie Ihre Abfragen mit vielen Index-Typen – unabhängig davon, wie stark die Felder miteinander verschachtelt sind.
Geodaten und Graph-Daten
Fragen Sie ganz einfach Geodaten ab und verwenden Sie Operatoren wie $graphLookup, um verbundene Datensätze zu durchsuchen.
Abfragen über Collections und Datenbanken hinweg
Nutzen Sie $lookup und $unionWith, um mehrere Collections zu verbinden und zu mischen, oder Atlas Data Federation, um datenbankübergreifende Abfragen für tiefgreifende Analysen und Erkundungen durchzuführen.
Transformieren und Analysieren von Daten vor Ort
Verwenden Sie die Aggregation-Pipeline, um komplexe Transformationen auf einfache, modulare Weise zu erstellen.
Für das Dokumentmodell entwickelte Volltextsuche
Stellen Sie eine erweiterte Volltextsuche bereit – ohne zusätzliche Infrastruktur managen zu müssen.
Change Streams
Erstellen Sie ereignisgesteuerte Apps in Echtzeit, die auf Datenbankänderungen reagieren, indem sie serverseitige Logik triggern.
On-Demand, inkrementelle materialisierte Ansichten
Berechnen Sie gängige Abfragen im Voraus und speichern Sie sie im Cache. Aktualisieren Sie die Resultatmengen dynamisch, wenn neue Daten verarbeitet werden.
Vereinfachen Sie die Arbeit mit Daten
Ausdrucksstarke Abfragen leicht gemacht
xxxxxxxxxx
#Querying on arrays
db.inventory.find({
“Size.h”: {$lt: 15}, “size.uom”: “in”, status: “D”
})
#Geospatial queries
db.places.find(
{
location:
{ $near:
{
$geometry: { type: "Point", coordinates: [ -73.9667, 40.78 ] },
$minDistance: 1000,
$maxDistance: 5000
}
}
}
)
Zusammensetzbare datenbankinterne Transformationen
xxxxxxxxxx
lonely_ne = db.lonely_neighborhoods
popular_ne = db.popular_neighborhoods
pipeline = [
#filter neighborhoods where the population is known
{"$match": {"population": {"$ne": "unknown"}}},
#perform a union with the collection containing popular neighborhoods with an embedded pipeline for filtering neighborhoods where the population is known, and removing documents where the city is an industrial township
{"$unionWith": {"coll": "popular_neighborhoods",
"pipeline": [
{"$match": {"population": {"$ne": "unknown"}}},
{$redact: {$cond: {
if: { $eq: [ "$type", "Industrial township"]},
then: "$$PRUNE",
else: "$$DESCEND" }}
}
] }},
#finally we are grouping neighborhoods by climate to calculate the total population in popular neighborboods that are not in an industrial township
{"$group": {"_id": "$climate", "totalPopulation": {"$sum": {"$toLong": "$population"}}}}
]
result = lonely_ne.aggregate(pipeline)
Volltextsuche, Time Series und mehr
xxxxxxxxxx
#running a full-text search query
movies = db.movies
pipeline = [
{"$search": {"near": {"path": "released", "origin": {"$date": "2011-09-01T00:00:00.000+00:00"}, "pivot": 7776000000}}}},
{"$project": {"_id": 0, "title": 1, "released": 1}}
]
result = movies.aggregate(pipeline)
#analyzing time series with window functions
cakeSales = db.cakeSales
pipeline = [
{"$setWindowFields": {
"partitionBy": {"$year": "$orderDate"},
"sortBy": {"orderDate": 1},
"output": {"cumulativeQuantityForYear": {"$sum": "$quantity", "window": {"documents": ["unbounded", "current"]}}}
}
}
]
result = cakeSales.aggregate(pipeline)
for res in result:
print(res)
Abfrage. Transformation. Analyse.
Experimentieren mit einer interaktiven Demo-App
Atlas optimal nutzen
Steigen Sie noch heute in die Nutzung der Abfrage-API ein
- CRUD
- Aggregationen
- Change Streams
- Geodaten und Graph
- Volltextsuche
- Sprachtreiber