2013-02-26 41 views
2

我用mongoexport將一個集合導出到json文件(腳本如下)。mongoexport到json文件時NumberLong丟失

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
  1. 保存NumberLong而不引用是正確的嗎?

它看起來像是Mongo的行爲,具體取決於數字的長度。通過解析不同長度的數字進一步測試。

  1. 44 - 無報價>> NumberLong(44),
  2. 1338585352 - 無報價>> NumberLong(1338585352),
  3. 13385853520 - 報價加入>> 「NumberLong(」 13385853520" )
  1. 不要緊,如果未出口的話 「NumberLong」?

由於有或沒有引用是正確的,它是Mongo的行爲。因此,當使用mongoexport/mongodump進行導出時,NumberLong()將被刪除。

0
  1. 如果單詞「NumberLong」沒有被導出,這有什麼關係嗎?

取決於,對你有影響嗎?

mmongoexport是爲什麼這是因爲,與BSON不同,JSON不具備表示BSON可以使用的NumberLong等高級對象的能力;考慮到這一點,他們只是被剝奪了。

如果你打算把這個文件重新導入到MongoDB中,它可能對你很重要,因爲對象會丟失。

  1. 保存NumberLong而不引用是正確的嗎?

是,NumberLong可以採取一個正整數作爲其唯一的參數。

+0

對於#1,我沒有使用mongodump輸出爲BSON文件,但是與使用mongorestore將BSON導回到數據庫時缺少引號「」的結果相同(與mongoimport相同)。如果「NumberLong with quote」,那麼它可以正確轉儲和恢復。 – Cthoong 2013-02-27 02:00:53

+0

'2.保存NumberLong而不引用是正確的嗎?' – Cthoong 2013-02-27 04:14:53

+0

@Cthoong如果mongodump在重新導入時丟失了對象,那麼出現錯誤 – Sammaye 2013-02-27 08:24:41