y a-t-il une bibliothèque où je peux accéder à MongoDB à l'aide de SQL comme Syntaxe Syntaxe.
Exemple P>
use db select * from table1 insert into table1 values (a,b,c) delete from table select a,b,count(*) from table1 group by a,b select a.field1,b.field2 from a,b where a.id=b.id
8 Réponses :
MongoDB et son pilote actuel ne prennent pas en charge la syntaxe directe SQL. Cependant, toutes les opérations sont facilement faisables avec les opérations spécifiques au conducteur. Voici une brève cartographie des opérations de MongoDB à la section SQL correspondante comme requête: P>
http://www.mongodb.org/display/ Docs / SQL + TO + Mongo + Mappage + graphique p>
Il y a quelques projets en cours pour émuler une interface SQL pour MongoDB. Bien qu'ils fournissent une interface familière, ils devraient être évités en général. Ils fonctionnent sur une prémisse fondamentalement imparfait en ce sens qu'elles analysent les chaînes et les traduisent en appels de méthode. p>
Une fois que vous avez travaillé avec Mongodb, vous trouverez l'approche d'utiliser des classes et des méthodes une interface beaucoup plus accessible car elle fonctionne exactement comme toutes les autres parties de votre application. Oui, il existe une petite courbe d'apprentissage lors de la première départ, mais pour la plupart, l'interface de MongoDB travaille à la manière dont vous vous attendez. P>
Les systèmes qui «analysent les chaînes et les traduisent en appels de méthode» ne sont définitivement pas «un principe fondamentalement imparfait». Chaque console et chaque langue de programmation basée sur script le fait. L'évaluation du temps d'exécution est incroyablement puissante - est-ce vraiment des instructions de mapreduce de compilation différentes en C ++ par rapport à la création d'un script à la volée?
La courbe d'apprentissage n'est faible que si vous ne faites que des requêtes SQL extrêmement simples. Si l'étendue de votre requête SQL est "SELECT * de X", alors MongoDB ressemble à une idée brillante pour couper tout le SQL trop compliqué. Mais si vous avez besoin d'effectuer des jointures extérieures à gauche, testez pour NULL, recherchez des algues, des sous-vues, des sous-vues, du regroupement et de la Sumration, vous vous retrouverez rapidement avec une ronde concave dans votre bureau après avoir été déplacé vers Mongo. Le punch des malades est que la moitié du temps, la chose que vous essayez de faire ne peut pas être faite dans l'interface Mongo. Mongo représente un nouveau monde audacieux où des bases de données faisant des choses comme l'agrégation et l'optimisation de la requête, il ne fait que stocker des données et toute la magie est effectuée en récupérant tout, en la stockant lentement dans la mémoire de l'application et en faisant tout ce genre de choses dans le code. < / p>
Bien que vos conseils puissent être très utiles, vous n'avez pas répondu à la question. S'il vous plaît considérer pour écrire ce type d'entrée comme un commentaire.
Non, c'est une bonne réponse toujours vraie 43 ans plus tard. Mongo est terrible pour les rapports.
Très bonne réponse! Exactement le type d'information que quelqu'un a apporté à cette question est à la recherche.
Oui!
Une société appelée UnityJDBC fait un pilote JDBC pour MongoDB. Contrairement au pilote de Mongo Java, ce pilote JDBC vous permet d'exécuter des requêtes SQL contre MongoDB et le pilote est pris en charge par n'importe quelle application Java utilisant JDBC. P>
Télécharger ce pilote Aller à ... P>
http://www.unityjdbc.com/mongojdbc/mongo_jdbc.php < / p>
C'est libre de télécharger aussi! P>
J'espère que cela aide p>
Regardez ce projet récent: http://www.mongosql.com/ . Je l'ai regardé au cours des dernières semaines et cela a l'air très prometteur. P>
Pour ceux d'entre vous qui ont interrogé l'utilité de SQL contre Mongodb, envisagez le grand nombre d'utilisateurs non très techniques de nombreuses organisations, tels que des analystes d'affaires, qui peuvent connaître SQL, mais ne veulent pas faire le saut à JavaScript et Json. Les outils tels que Mongosql peuvent aider à pousser l'adoption de MongoDB dans une organisation. P>
Il y a quelques solutions là-bas, mais presque toutes ne représentent pas vraiment le modèle de données de MongoDB de manière à ce que les applications et les utilisateurs «de manière relativement» ODBC / JDBC désirent / nécessitent. Un produit commercial récent a été publié qui aborde ces défis p>
ODBC: http://www.progress.com/products/datadirect -Connect / ODBC-Pilotes / sources de données / MongoDB P>
JDBC: http://www.progress.com/products/datadirect -Connect / JDBC-Pilotes / sources de données / MongoDB P>
Pour répondre à la nécessité d'un accès ODBC / JDBC (SQL) ... Bien qu'il existe de forts arguments pour écrire de nouvelles applications utilisant les clients de Mongo, il reste encore un besoin important sur le marché de la qualité d'accès ODBC / JDBC et SQL à Mongodb. Ce besoin provient en grande partie de toutes les applications de reporting, d'analyse et de BI qui s'appuient sur la connectivité ODBC / JDBC et n'offrent pas une intégration indigène avec MongoDB. p>
J'ai essayé le pilote de progression JDBC / MongoDB avec une requête "Groupe en passant". Mais la performance était terrible par rapport au cadre d'agrégation native de MongoDB.
MOSQL pourrait satisfaire vos besoins. Cela vous obligera à exécuter une nouvelle instance PostgreSQL, mais à partir de là, vous pouvez interroger votre ensemble de jeu de données Mongo avec SQL. P>
"MOSQL importe le contenu de votre cluster de base de données MongoDB dans une instance PostgreSQL, à l'aide d'une option OPLOG pour maintenir le miroir SQL à jour à jour. Cela vous permet d'exécuter des services de production sur une base de données MongoDB, puis d'exécuter l'analyse hors ligne. ou signaler en utilisant la pleine puissance de SQL. " P>
Free NosQL Viewer prend en charge la conversion de requêtes SQL sur la syntaxe de Shell Mongodb. En outre, dans SQL Viewer, vous pouvez même utiliser des instructions SQL Sélectionner pour interroger les données de collections de Mongodb sans connaître la syntaxe de requête MongoDB. Découvrez NosqL Viewer ici www.spviewer.com/nosqlviewer.html P>
Pourquoi voudriez-vous faire cela?
Si vous souhaitez utiliser SQL, n'utilisez pas de MongoDB, mais utilisez un SGBDM
Parfois, lorsque vous souhaitez passer de RDBMS à NOSQL, vous faites face à des problèmes d'héritage et simplifier ce processus que vous souhaitez avoir quelque chose qui agira comme proxy, acceptant SQL et mapper les fonctions NOSQL.