小程序云開發(fā)數(shù)據(jù)導(dǎo)入總結(jié)

起因:之前用即時(shí)應(yīng)用做了一個(gè)小程序,產(chǎn)生了上千條的應(yīng)用數(shù)據(jù)(以csv文件導(dǎo)出),現(xiàn)在即時(shí)應(yīng)用即將要收費(fèi),于是把小程序用云開發(fā)重寫了后臺(tái)數(shù)據(jù)庫(kù)克滴,所以就有了這次的數(shù)據(jù)遷移,即將上千條的csv文件數(shù)據(jù)導(dǎo)入到小程序的云開發(fā)數(shù)據(jù)庫(kù)(以下簡(jiǎn)稱云數(shù)據(jù)庫(kù))优床。

一劝赔、云數(shù)據(jù)導(dǎo)入導(dǎo)讀

云開發(fā)支持從文件導(dǎo)入已有的數(shù)據(jù)。目前僅支持導(dǎo)入 CSV胆敞、JSON 格式的文件數(shù)據(jù)着帽。有云開發(fā)控制臺(tái)和HTTP API兩種導(dǎo)入方式。在此只介紹下使用云開發(fā)控制臺(tái)導(dǎo)入數(shù)據(jù)移层。

使用云開發(fā)控制臺(tái)導(dǎo)入

要導(dǎo)入數(shù)據(jù)仍翰,需打開云開發(fā)控制臺(tái),切換到 “數(shù)據(jù)庫(kù)” 標(biāo)簽頁(yè)观话,并選擇要導(dǎo)入數(shù)據(jù)的集合予借,點(diǎn)擊 “導(dǎo)入” 按鈕。

數(shù)據(jù)庫(kù)

選擇要導(dǎo)入的 CSV 或者 JSON 文件频蛔,以及沖突處理模式灵迫,點(diǎn)擊 “導(dǎo)入” 按鈕即可開始導(dǎo)入。

文件格式

JSON晦溪、CSV 文件必須是 UTF-8 的編碼格式瀑粥,且其內(nèi)容類似 MongoDB 的導(dǎo)出格式,例如:

JSON:

{
    "_id": "xxxxxx",
    "age": 45
}

{
    "_id": "yyyyyy",
    "age": 21
}

CSV:

_id,age
xxxxxx,45
yyyyyy,21

需要注意以下幾點(diǎn):

1三圆、JSON 數(shù)據(jù)不是數(shù)組狞换,而是類似 JSON Lines,即各個(gè)記錄對(duì)象之間使用 \n 分隔舟肉,而非逗號(hào)修噪;

2、JSON 數(shù)據(jù)每個(gè)鍵值對(duì)的鍵名首尾不能是 .路媚,例如 ".a"割按、"abc.",且不能包含多個(gè)連續(xù)的 .磷籍,例如 "a..b"适荣;

3、鍵名不能重復(fù)院领,且不能有歧義弛矛,例如 {"a": 1, "a": 2}{"a": {"b": 1}, "a.b": 2}

4比然、時(shí)間格式須為 ISODate 格式丈氓,例如 "date": { "$date" : "2018-08-31T17:30:00.882Z" }

5强法、當(dāng)使用 Insert 沖突處理模式時(shí)万俗,同一文件不能存在重復(fù)的 _id 字段,或與數(shù)據(jù)庫(kù)已有記錄相同的 _id 字段饮怯;

6闰歪、CSV 格式的數(shù)據(jù)默認(rèn)以第一行作為導(dǎo)入后的所有鍵名,余下的每一行則是與首行鍵名一一對(duì)應(yīng)的鍵值記錄蓖墅。

目前提供了 Insert库倘、Upsert 兩種沖突處理模式。Insert 模式會(huì)在導(dǎo)入時(shí)總是插入新記錄论矾,Upsert 則會(huì)判斷有無(wú)該條記錄教翩,如果有則更新記錄,否則就插入一條新記錄贪壳。

導(dǎo)入完成后饱亿,可以在提示信息中看到本次導(dǎo)入記錄的情況。

數(shù)據(jù)庫(kù)

二闰靴、準(zhǔn)備工作

  1. 直接將csv數(shù)據(jù)導(dǎo)入到云數(shù)據(jù)庫(kù)彪笼,文件導(dǎo)入報(bào)錯(cuò),導(dǎo)入內(nèi)容亂碼传黄。因此需要將csv文件轉(zhuǎn)成json格式杰扫。
  2. 在線csv轉(zhuǎn)json工具json-csv.com 或者col2json

3.對(duì)轉(zhuǎn)換結(jié)果進(jìn)行校驗(yàn) Json在線校驗(yàn)工具

三、對(duì)校驗(yàn)結(jié)果進(jìn)行修正膘掰,

參考 JSON Lines的示例章姓,檢查各個(gè)json數(shù)組是否正確

{
  "name": "Gilbert", 
  "wins": [
    [
      "straight", 
      "7?"
    ], 
    [
      "one pair", 
      "10?"
    ]
  ]
}
{
  "name": "Alexa", 
  "wins": [
    [
      "two pair", 
      "4?"
    ], 
    [
      "two pair", 
      "9?"
    ]
  ]
}

四、導(dǎo)入時(shí)遇到的問(wèn)題列表

導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:339958)異常识埋,錯(cuò)誤信息:解析json文檔錯(cuò)誤凡伊,請(qǐng)檢查導(dǎo)入文件格式,
錯(cuò)誤詳情如下:invalid character '-' after object key:value pair


導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340089)異常窒舟,錯(cuò)誤信息:解析json文檔錯(cuò)誤系忙,請(qǐng)檢查導(dǎo)入文件格式,
錯(cuò)誤詳情如下:invalid character '\r' in string literal


導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340090)異常惠豺,錯(cuò)誤信息:解析json文檔錯(cuò)誤银还,請(qǐng)檢查導(dǎo)入文件格式风宁,
錯(cuò)誤詳情如下:invalid character '\t' in string literal

導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340108)異常,錯(cuò)誤信息:解析json文檔錯(cuò)誤蛹疯,請(qǐng)檢查導(dǎo)入文件格式戒财,
錯(cuò)誤詳情如下:invalid character 'è' looking for beginning of value

導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340118)異常,錯(cuò)誤信息:解析json文檔錯(cuò)誤捺弦,請(qǐng)檢查導(dǎo)入文件格式饮寞,
錯(cuò)誤詳情如下:invalid character '?' looking for beginning of value

導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340125)異常,
錯(cuò)誤信息:解析json文檔錯(cuò)誤列吼,請(qǐng)檢查導(dǎo)入文件格式幽崩,
錯(cuò)誤詳情如下:invalid character '6' after object key:value pair


導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340133)異常,錯(cuò)誤信息:解析json文檔錯(cuò)誤寞钥,請(qǐng)檢查導(dǎo)入文件格式慌申,
錯(cuò)誤詳情如下:invalid character ',' looking for beginning of value

導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340140)異常,錯(cuò)誤信息:解析json文檔錯(cuò)誤凑耻,請(qǐng)檢查導(dǎo)入文件格式太示,
錯(cuò)誤詳情如下:invalid character '?' after object key:value pair

導(dǎo)入數(shù)據(jù)庫(kù)失敗, Error: Poll error, 
導(dǎo)入數(shù)據(jù)任務(wù)(id:340169)異常,錯(cuò)誤信息:解析json文檔錯(cuò)誤香浩,請(qǐng)檢查導(dǎo)入文件格式类缤,
錯(cuò)誤詳情如下:invalid character 'c' in literal ObjectId (expecting 'b')

五、導(dǎo)入錯(cuò)誤查看步驟

image.png

看到這個(gè)錯(cuò)誤時(shí)邻吭,刷新下數(shù)據(jù)庫(kù)記錄餐弱,查看下最后一條導(dǎo)入數(shù)據(jù)的id。


數(shù)據(jù)庫(kù)記錄

然后導(dǎo)入文件中查找id對(duì)應(yīng)記錄之后的那條記錄即可囱晴。如下結(jié)構(gòu)中就存在telphone存在‘-’非法字符膏蚓。

"age": 22,
"telphone": 185-3000-9790,

六、總結(jié)

小程序云開發(fā)提供了免費(fèi)的數(shù)據(jù)庫(kù)使用畸写,但數(shù)據(jù)庫(kù)操作上存在很多不好用的地方驮瞧,比如沒(méi)有批量刪除即可與其記錄的功能,比如導(dǎo)入的容錯(cuò)性太低枯芬,比如導(dǎo)入報(bào)錯(cuò)時(shí)论笔,錯(cuò)誤提示不明確,如作者遇到的導(dǎo)入數(shù)據(jù)任務(wù)(id:340125)異常千所,這個(gè)id是什么鬼狂魔?
因此需要大家仔細(xì)校驗(yàn)數(shù)據(jù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末淫痰,一起剝皮案震驚了整個(gè)濱河市最楷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖籽孙,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件烈评,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蚯撩,警方通過(guò)查閱死者的電腦和手機(jī)础倍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)胎挎,“玉大人,你說(shuō)我怎么就攤上這事忆家∮坦剑” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵芽卿,是天一觀的道長(zhǎng)揭芍。 經(jīng)常有香客問(wèn)我,道長(zhǎng)卸例,這世上最難降的妖魔是什么称杨? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮筷转,結(jié)果婚禮上姑原,老公的妹妹穿的比我還像新娘。我一直安慰自己呜舒,他們只是感情好锭汛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著袭蝗,像睡著了一般唤殴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上到腥,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天朵逝,我揣著相機(jī)與錄音,去河邊找鬼乡范。 笑死配名,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的篓足。 我是一名探鬼主播段誊,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼栈拖!你這毒婦竟也來(lái)了连舍?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎索赏,沒(méi)想到半個(gè)月后盼玄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡潜腻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年埃儿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片融涣。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡童番,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出威鹿,到底是詐尸還是另有隱情剃斧,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布忽你,位于F島的核電站幼东,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏科雳。R本人自食惡果不足惜根蟹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糟秘。 院中可真熱鬧简逮,春花似錦、人聲如沸蚌堵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吼畏。三九已至督赤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泻蚊,已是汗流浹背躲舌。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留性雄,地道東北人没卸。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像秒旋,于是被迫代替她去往敵國(guó)和親约计。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 13,760評(píng)論 0 15
  • Zookeeper用于集群主備切換迁筛。 YARN讓集群具備更好的擴(kuò)展性煤蚌。 Spark沒(méi)有存儲(chǔ)能力。 Spark的Ma...
    Yobhel閱讀 7,269評(píng)論 0 34
  • d3二班的戰(zhàn)友們大家好,真不好意思化妝的時(shí)間有點(diǎn)太長(zhǎng)了尉桩,這么關(guān)鍵的一個(gè)開班儀式筒占,我居然掉鏈子了。這說(shuō)明什么呢蜘犁,說(shuō)明...
    Hanna閱讀 349評(píng)論 1 1
  • 神奇的經(jīng)歷——初遇 14歲那年盛夏这橙,無(wú)聊的翻看QQ空間奏窑,不知道是第幾次看見‘王俊凱’這個(gè)名字了,不得不說(shuō)屈扎,這是一個(gè)...
    薇來(lái)坷苡閱讀 291評(píng)論 0 0