Ruby php7 et MongoDB

Le
Une Bévue
Bonjour,

sur "Linux Mint 18 Sarah" fondée sur Ubuntu 16.04 LTS, j'ai installé
Ruby, Php7 et MongoDB ***32bits*** (sur un "vieux" dell D620).

surprise avec MongoDB, si je crée une base de données disons "toast"
avec une seule collection "students" avec php, je peux bien évidemment
la lire depuis php MAIS PAS depuis Ruby.

du coup je crée une autre base de données "test" avec une seule
collection "student", je peux la lire à partir de Ruby mais pas à partir
de php.

pour l'instant mes bases ne sont pas authentifiées.

Or j'ai besoin de pouvoir lire mes bases crées à partir de Ruby depuis
php car j'utilise Rockmongo (sorte de phpMyAdmin pour MongoDB) écrit en php.

j'ai vérifié par "ps aux | grep mongod" je n'ai bien qu'un seul serveur
MongoDB qui tourne.

Au cas où vous auriez des lumières.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Yliur
Le #26417632
Le Sat, 19 Nov 2016 14:22:47 +0100
Une Bévue
Bonjour,
sur "Linux Mint 18 Sarah" fondée sur Ubuntu 16.04 LTS, j'ai installé
Ruby, Php7 et MongoDB ***32bits*** (sur un "vieux" dell D620).
surprise avec MongoDB, si je crée une base de données disons "toast"
avec une seule collection "students" avec php, je peux bien
évidemment la lire depuis php MAIS PAS depuis Ruby.
du coup je crée une autre base de données "test" avec une seule
collection "student", je peux la lire à partir de Ruby mais pas à
partir de php.
pour l'instant mes bases ne sont pas authentifiées.
Or j'ai besoin de pouvoir lire mes bases crées à partir de Ruby
depuis php car j'utilise Rockmongo (sorte de phpMyAdmin pour MongoDB)
écrit en php.
j'ai vérifié par "ps aux | grep mongod" je n'ai bien qu'un seul
serveur MongoDB qui tourne.
Au cas où vous auriez des lumières.

Une erreur de configuration ? Dans ce message tu as écrit une fois
"students" et une fois "student", est-ce que tu as pu te tromper en
écrivant ça quelque part ?
Sinon l'accès se passe en deux étapes sans doute : connexion puis
requête. Quelle étape ne fonctionne pas ? Y a-t-il un message d'erreur
lors de la connexion ?
Ou encore un moyen dans MongoDb de lister les collections d'une base ?
Une Bévue
Le #26417634
Le 19/11/2016 à 14:38, Yliur a écrit :
Une erreur de configuration ? Dans ce message tu as écrit une fois
"students" et une fois "student", est-ce que tu as pu te tromper en
écrivant ça quelque part ?

non, non, il y a bien une différence entre "students" et "student" dans
l'une ou l'autre db.
Sinon l'accès se passe en deux étapes sans doute : connexion puis
requête. Quelle étape ne fonctionne pas ? Y a-t-il un message d'erreur
lors de la connexion ?

aucun message d'erreur.
Ou encore un moyen dans MongoDb de lister les collections d'une base ?

oui, je viens de regarder, après mon post sur usenet.
avec "mongo" le "shell" de MongoDB j'obtiens :
use toast

switched to db toast
show collections

students
system.indexes
db.students.find();

{ "_id" : ObjectId("582ed4dfa7aca50ea701b15a"), "name" : "Yvon Thoraval" }
{ "_id" : ObjectId("582ed4dfa7aca50ea701b15b"), "name" : "Samuël Thoraval" }
{ "_id" : ObjectId("582ed4dfa7aca50ea701b15c"), "name" : "Lilwenn
Thoraval" }
donc là, ça roule, j'ai bien le contenu de ma bd créée par
use test

switched to db test
show collections

student
system.indexes
db.student.find()

là rien ne sort et pourtant, ruby, me donne une collection de 3 documents.
donc, si je résume les manips, php et le "shell mongo" finalement
trouvent la même chose : il y a une collection de 3 documents dans la bd
"toast", il y a bien une autre bd "test" avec une collection "student"
mais vide.
Ruby trouve toutes les dbs existantes :
databases = ["local", "admin", "toast", "test", "db"]
MAIS toutes ces dbs ont la même collection "student".
Ruby affiche le bon contenu de la collection "student" de "test" (c'est
différent de toast.students, un attribut supplémentaire : "course")
MAIS si je print la collection "student" attribuée aussi à "test" par
Ruby, j'ai la même chose que pour toast/student...
je m'arrache les cheveux.
bon, comme je suis en 32 bits, ma version de MongoDB est la 2.6.10.
sur le site MongoDB il est indiqué que le 32 bits n'est plus supporté...
peut-être qu'il y a une sorte de mismatch entre version du driver et
version du serveur.
avec php7 je suis au "tip-top" du driver "MongoDB" + adaptateur composer
mongodb/mongodb.
à la précédente release de linux mint, je n'ai pas eu ce bronx.
Une Bévue
Le #26417810
Le 19/11/2016 à 14:38, Yliur a écrit :
Une erreur de configuration ? Dans ce message tu as écrit une fois
"students" et une fois "student", est-ce que tu as pu te tromper en
écrivant ça quelque part ?

une erreur perso au choix de la base.
j'ai utilisé la syntaxe JavaScript dans un script Ruby...
mais je n'avaais pas de mesage d'erreur.
le driver ruby pour mongo est tel qu'il utilise la base "admin" par défaut.
c'est là où j'ai trouvé mes collections.
Publicité
Poster une réponse
Anonyme