2012-06-21 5 views
1

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é?

+0

Pourquoi le vote baissier? –

Répondre

Questions connexes