J'ai des données que nous avons transformées en json afin qu'elles puissent être importées dans mongodb.Valeurs de date de chargement avant 1970 en utilisant mongoimport vs mongo shell
Pour certains documents que nous avons besoin d'avoir un champ de date qui se trouve avant 1970. Nous avons donc testé les documents en faisant essentiellement ceci:
[[email protected] ~]$ echo 'db.datetest.save({"date": new Date(1)});' | mongo nielsbasjes
MongoDB shell version: 2.0.6
connecting to: nielsbasjes
bye
[[email protected] ~]$ echo 'db.datetest.save({"date": new Date(-1)});' | mongo nielsbasjes
MongoDB shell version: 2.0.6
connecting to: nielsbasjes
bye
et ont été insérés deux documents.
Cependant, lorsque nous essayons de charger les mêmes documents à l'aide mongoimport nous obtenons ceci:
[[email protected] ~]$ echo '{"date": new Date(1)}' | mongoimport -vv -d nielsbasjes -c datetest
Thu Jun 21 17:43:19 creating new connection to:127.0.0.1
Thu Jun 21 17:43:19 BackgroundJob starting: ConnectBG
Thu Jun 21 17:43:19 connected connection!
connected to: 127.0.0.1
Thu Jun 21 17:43:19 ns: nielsbasjes.datetest
Thu Jun 21 17:43:19 filesize: 0
Thu Jun 21 17:43:19 got line:{"date": new Date(1)}
Thu Jun 21 17:43:19 got line:
imported 1 objects
So far so good ...
[[email protected] ~]$ echo '{"date": new Date(-1)}' | mongoimport -vv -d nielsbasjes -c datetest
Thu Jun 21 17:43:24 creating new connection to:127.0.0.1
Thu Jun 21 17:43:24 BackgroundJob starting: ConnectBG
Thu Jun 21 17:43:24 connected connection!
connected to: 127.0.0.1
Thu Jun 21 17:43:24 ns: nielsbasjes.datetest
Thu Jun 21 17:43:24 filesize: 0
Thu Jun 21 17:43:24 got line:{"date": new Date(-1)}
Thu Jun 21 17:43:24 Assertion: 10340:Failure parsing JSON string near: "date": ne
0x581a82 0x528610 0xaa3ff3 0xaa5e63 0xa9cccd 0xaa0932 0x3bbb81ecdd 0x4fed69
mongoimport(_ZN5mongo11msgassertedEiPKc+0x112) [0x581a82]
mongoimport(_ZN5mongo8fromjsonEPKcPi+0x3d0) [0x528610]
mongoimport(_ZN6Import8parseRowEPSiRN5mongo7BSONObjERi+0x8b3) [0xaa3ff3]
mongoimport(_ZN6Import3runEv+0x16e3) [0xaa5e63]
mongoimport(_ZN5mongo4Tool4mainEiPPc+0x169d) [0xa9cccd]
mongoimport(main+0x32) [0xaa0932]
/lib64/libc.so.6(__libc_start_main+0xfd) [0x3bbb81ecdd]
mongoimport(__gxx_personality_v0+0x3c9) [0x4fed69]
exception:Failure parsing JSON string near: "date": ne
Thu Jun 21 17:43:24 got line:
imported 0 objects
encountered 1 error
Nous avons essayé plusieurs syntaxes pour la même date et nous obtenons le même effet avec toutes ces formes:
- { "date": new Date (-2174520376)}
- { "date": new Date (1901,2,3,22,33,44,000)} {
- "date": nouvelle date ("3 Février, 1901 22:33:44")
Le système de test exécute CentOS 64Bit avec mongo-10gen-2.0.6-mongodb_1.x86_64 et mongo-10gen-server-2.0.6-mongodb_1.x86_64 à partir du référentiel 10gen RPM.
Comment pouvons-nous résoudre ce problème? Ou est-ce un bug dans mongoimport qui devrait être signalé?
Pourquoi le vote baissier? –