我完全不熟悉MongoDB所以赦免,如果我的問題太簡單。什麼是最好的文件格式上傳到MongoDB
我有4數據集並且每個數據集都有對應於樣本的文件,每個樣本有3個文件對應三種標準化方法。所有4個數據集中的樣本總數爲20000,因此總文件數爲60000(因爲有3種歸一化方法)。每個文件大約有2-5列和60000行。我想創建哪種類型的具有下列的數據庫:
Dataset, Sample, Type, Normalization, ID, Value
例子:對於一個數據集Pnoc
,我有一個樣品C021_0001_20140916
這是Tumor
型,它具有相當於三個文件標準化方法Kallisto
,RSEM_Genes
和RSEM_Isoforms
。所有這些信息都以文件名編碼。該ID和值將target_id
和tpm
採取從文件內容中:
target_id length eff_length est_counts tpm
ENST00000619216.1 68 22.4958 3.07692 1.17482
ENST00000473358.1 712 527.104 0 0
ENST00000469289.1 535 350.229 0 0
ENST00000607096.1 138 16.1984 0 0
ENST00000417324.1 1187 1002.07 0.071357 0.000611642
ENST00000461467.1 590 405.167 0 0
ENST00000335137.3 918 733.078 0 0
ENST00000466430.5 2748 2563.07 233.847 0.783663
ENST00000495576.1 1319 1134.07 0 0
我在python
編寫腳本來通過每個文件遞歸去,創建一個JSON對象,那麼我就要上傳到腳本本身的MongoDB。 JSON對象我想看起來像這樣:
# 20000 Sample names, 3 Normalization methods and 60000 IDs in each file.
DatasetName1 {
SampleName1 {
Type {
Normalization1 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
},
Normalization2 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
},
Normalization3 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
}
}
},
SampleName2 {
Type {
Normalization1 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
},
Normalization2 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
},
Normalization3 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
}
}
},
...
SampleName20000{
Type {
Normalization1 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
},
Normalization2 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
},
Normalization3 {
{ ID1: value, Expression: value },
{ ID2: value, Expression: value },
...
{ ID60000: value, Expression: value }
}
}
}
}
但是之前,我開始寫劇本來處理這麼多的文件,並轉換到JSON,我想知道到底是上傳到MongoDB的最好的格式 - JSON /明文/ csv或任何其他格式?
請讓我知道,如果我可以提供任何其他關於我的代碼的信息。
謝謝!
您需要解析每個文件,並需要將其內容上傳到MongoDB集合,無需上傳文件。正確? – user10
從技術上講,我必須上傳整個文件內容。我只是不知道什麼是最好的方式,所以我正在考慮將內容轉換爲JSON,然後上傳到mongodb。 –
您的示例嵌套有子文檔。爲此,您只能使用json格式。你不能使用csv。解析所有文件並將其內容寫入json文件。然後使用mongoimport實用程序將json文件導入到MongoDB中。 – user10