摘要:公司采用作為新項目的數(shù)據(jù)存儲方式,以前沒那么大規(guī)模用過,心里還是有點懸,不知道會掉在哪些坑里,先給自己挖個坑。的第一個大坑好大的坑,讓我忙了一個下午。。。
公司采用 MongoDB 作為新項目的數(shù)據(jù)存儲方式,以前沒那么大規(guī)模用過,心里還是有點懸,不知道會掉在哪些坑里,先給自己挖個坑。
mongoDB 的第一個大坑:好大的坑,讓我忙了一個下午。。。mongodb對自己開發(fā)的nodejs驅動太不負責任了吧。。。
問題描述:采用異步方式插入三條數(shù)據(jù)(三條數(shù)據(jù)的插入間隔時間不超過1s),當?shù)谝粭l數(shù)據(jù)寫入但還沒有執(zhí)行回調(diào)的時候就開始插入下一條數(shù)據(jù)就會出現(xiàn)索引異常,提示大意就是插入了兩條相同鍵值的記錄。
為什么呢:之前在用 php 寫入數(shù)據(jù)的時候不會發(fā)生這個問題,大概是因為 php 是順序執(zhí)行的,沒有異步的特征。看了官方的文檔,mongodb 的 _id 生成機制是基于時間戳,當前進程ID以及當前計數(shù)器的值,由于時間很短,當前時間戳是一樣的,當前的進程也是一樣的,問題發(fā)生的關鍵就是 mongodb nodejs 驅動在還沒有執(zhí)行回調(diào)的時候計數(shù)器的值不會增加(天啊,mongo是怎么想的啊,mysql 很早就避免了這個問題,執(zhí)行一次id就會遞增一次,而且不管這條信息是否執(zhí)行成功,保證了是原子性的遞增方式,這樣才比較有業(yè)界良心啊),這樣就造成了nodejs幾乎同時寫入mongodb時會發(fā)生索引錯誤,就是11000錯誤代碼
方案:采用自己生成的 _id 來代替 mongo 生成的 _id 值,這樣就能夠有效進行避免。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/18715.html
摘要:傳統(tǒng)的網(wǎng)頁編程采用的三劍客來實現(xiàn),在微信小程序中同樣有三劍客。觀察者模式不難實現(xiàn),重點是如何在微信小程序中搭配其特有的生命周期來使用。交互事件傳統(tǒng)的事件傳遞類型有冒泡型與捕獲型,微信小程序中自然也有。 本文由作者鄒永勝授權網(wǎng)易云社區(qū)發(fā)布。 簡介為了更好的展示我們即時通訊SDK強悍的能力,網(wǎng)易云信IM SDK微信小程序DEMO的開發(fā)就提上了日程。用產(chǎn)品的話說就是: 云信 IM 小程序 S...
摘要:它就是史上最簡單的教程第三篇服務消費者后端掘金上一篇文章,講述了通過去消費服務,這篇文章主要講述通過去消費服務。概覽和架構設計掘金技術征文后端掘金是基于的一整套實現(xiàn)微服務的框架。 Spring Boot 配置文件 – 在坑中實踐 - 后端 - 掘金作者:泥瓦匠鏈接:Spring Boot 配置文件 – 在坑中實踐版權歸作者所有,轉載請注明出處本文提綱一、自動配置二、自定義屬性三、ran...
摘要:在使用過程中我們可以通過增加哈希次數(shù)來提高數(shù)據(jù)的安全性。當然,對密碼的哈希操作應該在保存數(shù)據(jù)之前。 showImg(https://segmentfault.com/img/remote/1460000010821081); 毫無疑問,幾乎所有的應用都會涉及到數(shù)據(jù)存儲。但是 Express 框架本身只能通過程序變量來保存數(shù)據(jù),它并不提供數(shù)據(jù)持久化功能。而僅僅通過內(nèi)存來保存數(shù)據(jù)是無法應對...
摘要:是為結果導向型人群開設的深度學習在線課程。但是最關鍵的是,我想通過構建簡單的深度學習解決方案來實現(xiàn)理論和實踐的相結合。我的目標是在一天結束前進入排名的前。我的時間都用于學習庫組織數(shù)據(jù)和評估結果都是一些與深度學習無關的簡單流程。 Fast.ai是Jeremy Howard為結果導向型人群開設的深度學習在線課程。我讀過很多關于機器學習的書,也參加過不少這方面的課程,但我認為Fast.ai是迄今為...
閱讀 972·2021-11-24 10:42
閱讀 3518·2021-11-19 11:34
閱讀 2654·2021-09-29 09:35
閱讀 2537·2021-09-09 09:33
閱讀 685·2021-07-26 23:38
閱讀 2527·2019-08-30 10:48
閱讀 1395·2019-08-28 18:07
閱讀 430·2019-08-26 13:44