MongoDB
L'API de requête.
Simple, expressive et unifiée.
Une manière flexible et intuitive de travailler avec les données. Créez des applications avec un minimum de code et une productivité maximale, dans le langage et l'outil de votre choix.
Une interface intuitive qui simplifie le traitement des charges de travail complexes pour tout type de données, y compris les tableaux, les données géospatiales et les time-series, et qui permet aux développeurs de travailler plus en codant moins.
- Travaillez dans le langage de votre choix
- Une interface unique pour les charges de travail opérationnelles, analytiques et de recherche
Travailler facilement avec n'importe quel type de données
Contrôlez l'ensemble de vos données avec l'API de requête MongoDB. Elle est conçue pour gérer facilement n'importe quelle structure de données, y compris la clé-valeur, le graphique, les requêtes géospatiales, les time series et les objets. Optimisées pour les tableaux et les objets imbriqués, ses capacités de requêtes expressives améliorent la flexibilité du modèle de document.
Augmenter la productivité grâce à une interface unique
Exploitez tout le potentiel des opérations sur les données. Effectuez des opérations clés, telles que l'indexation, l'interrogation et la mise à jour, grâce à une API unique et puissante. Modernisez vos applications en utilisant des requêtes transactionnelles, de recherche et analytiques, sans basculer entre les interfaces ou vous démener avec une syntaxe de requête complexe.
Aperçu des fonctionnalités
Requête expressive
Utilisez un large éventail de puissants opérateurs, comme $elemMatch et $geoIn pour interroger et mettre à jour un ou plusieurs document(s) en fonction d'un critère combiné, y compris dans les tableaux et les objets imbriqués.
Différents types d’index
Optimisez vos requêtes avec de nombreux types d'index, quel que soit le niveau d'imbrication des champs.
Données géospatiales et graphiques
Requêtez facilement les données géospatiales et utilisez des opérateurs, comme $graphLookup pour parcourir les ensembles de données connectés.
Interroger les collections et les bases de données
Utilisez $lookup et $unionWith pour joindre et fusionner plusieurs collections ou Atlas Data Federation pour effectuer des requêtes dans les bases de données, effectuer des explorations et des analyses plus fines.
Transformer et analyser des données en place
Utilisez l'aggregation pipeline pour créer des transformations complexes de manière simple et modulaire.
Recherche full-text pour le modèle de document
Déployez une recherche avancée en full-text, sans avoir besoin de gérer une infrastructure supplémentaire.
Change streams
Créez des applications en temps réel, event-driven, qui réagissent aux modifications de la base de données en déclenchant une logique côté serveur.
Vues matérialisées incrémentielles à la demande
Pré-calculez et mettez en cache les requêtes courantes en mettant à jour dynamiquement les ensembles de résultats au fur et à mesure que de nouvelles données sont traitées.
Simplifier la manière de travailler avec les données
Simplifier les requêtes expressives
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
}
}
}
)
Transformations composables dans la base de données
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)
Recherche en texte intégral, time series, etc.
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)
Requêtez. Transformez. Analysez.
Essayez vous-même avec notre application de démonstration interactive
Tirer le meilleur parti d'Atlas
Commencer à utiliser l'API de requête MongoDB dès aujourd'hui
- CRUD
- Agrégations
- Change streams
- Données géospatiales et graphiques
- Recherche en texte intégral
- Pilotes de langage