2

我使用 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是否正确?

提前致谢。

4

2 回答 2

2
  1. 不带引号保存 NumberLong 是否正确?

这似乎是 Mongo 的行为,具体取决于数字的长度。通过解析不同长度的数字进行了进一步测试。

  1. 44 - 无引号 >> NumberLong(44),
  2. 1338585352 - 无报价 >> NumberLong(1338585352),
  3. 13385853520 - 添加引用>>“NumberLong(“13385853520”)
  1. 如果“NumberLong”这个词没有被导出,这有关系吗?

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

于 2013-02-27T04:21:33.633 回答
0
  1. 如果“NumberLong”这个词没有被导出,这有关系吗?

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

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

如果您打算将此文件导入回 MongoDB,这可能对您很重要,因为对象将会丢失。

  1. 不带引号保存 NumberLong 是否正确?

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

于 2013-02-26T12:09:59.373 回答