Bonjour à tous,
Je me trouve face à un paradoxe que je n'arrive pas à résoudre. J'obtiens
des résultats différents selon que la requête est effectuée via mongo ou en
Ruby.
En tapant directement ma requête, j'obtiens :
db.logs.findOne({ "data.type":{$in:[/mission_status/]},
"metaData.eventName":"Action", "metaData.timestamp":{$gte:1338501600,
$lt:1338588000}})
J'obtiens :
{
"_id" : ObjectId("4fc123b7e4b25cd43b68e77d"),
"context" : {
"missionCode" : "my_mission",
"roomID" : NumberLong(10110),
"roomName" : "My_Room311"
},
"data" : {
"agent" : {
"id" : "10373744",
"type" : "userID"
},
"type" : "mission_status_0"
},
"metaData" : {
"application" : "my_app",
"clientTimestamp" : NumberLong("1338587575060"),
"eventName" : "Action",
"ip" : "11.214.162.255",
"loggerType" : "java-server",
"loggerVersion" : "DEV (build 0)",
"sequenceNumber" : 51018,
"timestamp" : 1338587575,
"md5" : "cd3b4bce699174c797c27b55d4f6f951"
}
}
Dans mon code Ruby, cette requête est effectuée.
Mais si je code map_field :context, "context" alors dès le lancement de la
fonction, si je tente d'afficher le champ context avec la fonction puts,
j'obtiens {"roomName":"My_Room311"}, tandis que si je code map_field
:context, "context.missionCode" j'obtiens bien my_mission.
Le problème est que j'ai besoin d'écrire map_field :context, "context" pour
généraliser les opérations avec d'autres valeurs.
Certes la structure a été modifiée par une équipe (et le fait que les
champs de type NumberLong étaient précédemment des entiers ou des entiers
sous forme de chaînes de caractères), mais d'après ce que j'ai sous les
yeux il reste anormal selon moi que je n'obtienne pas les résultats
souhaités.
Merci d'avance si vous avez des idées car là je patauge.
--
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]