当mongoexport到json文件时,NumberLong丢失

时间:2013-02-26 10:33:45

标签: mongodb mongoexport

我使用mongoexport将集合导出到json文件(脚本如下)。

mongoexport -d db1 -c user --out /root/user_130226.json

发现那些类型为“NumberLong”的参数保存时没有单词“NumberLong”,所以当我使用mongoimport时,“NumberLong”这个词也不见了。

如果使用mongodump和mongorestore,则相同。

示例:

来源:

>> "cd" : NumberLong(1361862291)

输出并导入新集合:

>> "cd" : 1361862291

但如果NumberLong的引号括在()中,则会相应地导出和导入。

示例:

  
    

“u4”:NumberLong(“111018951303058”),

  

问题:

1。如果没有导出“NumberLong”这个词是否重要?

2。保存NumberLong没有引用是否正确?

先谢谢。

2 个答案:

答案 0 :(得分:2)

  
      
  1. 没有引用保存NumberLong是否正确?
  2.   

看起来这是Mongo的行为,取决于数字的长度。通过解析不同长度的数字进一步测试。

  1. 44 - 没有报价>> NumberLong(44),
  2. 1338585352 - no quote>> NumberLong(1338585352),
  3. 13385853520 - 报价已添加>> “NumberLong(” 13385853520" )
  4.   
        
    1. 如果没有导出“NumberLong”这个词是否重要?
    2.   

    因为有或没有引用是正确的,它是Mongo的行为。因此,使用mongoexport / mongodump导出时,NumberLong()将被删除,也应该考虑正确。

答案 1 :(得分:0)

  
      
  1. 如果没有导出“NumberLong”这个词是否重要?
  2.   

取决于,对你来说重要吗?

mmongoexport之所以这是因为,与BSON不同,JSON没有能力表达像BSON那样的高级对象,如NumberLong;考虑到这一点,他们被剥夺了。

如果您打算将此文件重新导入MongoDB,那么对您来说很重要,因为对象将会丢失。

  
      
  1. 没有引用保存NumberLong是否正确?
  2.   

是的,NumberLong可以将正整数作为其唯一参数。