let index 前面加上global
使用MongoDB的第一件事情就是忘掉關(guān)系模型,充分利用反范式、冗余來(lái)達(dá)成最高的讀寫效率。你已經(jīng)發(fā)現(xiàn)了現(xiàn)在的數(shù)據(jù)模型不好用,為什么不換個(gè)思路來(lái)解決問(wèn)題?
決定數(shù)據(jù)模型的是你需要怎么使用這些數(shù)據(jù)。在不知道你打算怎么用這些數(shù)據(jù)的前提下,以下是一些按照常理的推測(cè)。
現(xiàn)在涉及的實(shí)體有3個(gè):
其中:
對(duì)于1:n的情況,最常見的做法是把1冗余到n。比如學(xué)生可以是:
{
_id:ObjectId(123456789...),
name:'zhangsan',
age:20,
class: {
classId: ObjectId(123456789...),
number:10,
// 其他常用字段
}
}
當(dāng)然你也可以不要class的詳細(xì)信息,畢竟一個(gè)班的學(xué)生只用查一次班級(jí)信息。
{
_id:ObjectId(123456789...),
name:'zhangsan',
age:20,
classId: ObjectId(123456789...)
}
用的時(shí)候是不是會(huì)方便一些?
沒(méi)錯(cuò),冗余有可能會(huì)造成數(shù)據(jù)不一致,但是你真的會(huì)這么在乎一致性嗎?通常的回答是不會(huì)。
比如如果班級(jí)信息如果要修改怎么辦?那就會(huì)造成每個(gè)學(xué)生的班級(jí)信息都更新一遍,修改時(shí)壓力會(huì)比較大操作比較復(fù)雜。但是別忘了你的系統(tǒng)大部分壓力是來(lái)自讀而不是寫。班級(jí)修改的概率有多大?可能幾個(gè)月不見得有一次。但是讀班級(jí)的概率有多大?可能每天就有好多次。比較一下孰輕孰重不言而喻。
綜上,使用MongoDB時(shí)不要用范式來(lái)約束自己,從性能,易用性來(lái)考慮就可以了。
<li v-for="ia in imgArray" :key="ia.id" :id="ia.id">
<x-progress :percent="ia.percent" :show-cancel="false" v-show="uploadingImgId==ia.id" :ref="ia.id+'Xp'" ></x-progress>
</li>
imgArray數(shù)字的每一項(xiàng)加一個(gè)percent來(lái)對(duì)應(yīng)啊
app里當(dāng)然沒(méi)有調(diào)試工具了。你是為了復(fù)制文字(嘗試手指長(zhǎng)按你想復(fù)制文字)?還是為了看看其dom節(jié)點(diǎn),想進(jìn)行調(diào)試?
第二級(jí)圖不是你的svn目錄. svn目錄結(jié)構(gòu)不是這種.
應(yīng)該是你的項(xiàng)目并沒(méi)有提交到svn里面, 所以更新不出來(lái).
你先在第二圖的項(xiàng)目里, commit, 然后在第一圖中再更新.
$(function () {} )部分改成如下(ajax內(nèi)省略):
$(function () {
var $input = $( 'input[type=text]' ),
$btn = $( 'button' ),
status = {},
switchBtn = ( bool = false ) => {
bool
? $btn.removeAttr( 'disabled' )
: $btn.attr( 'disabled', 'disabled' )
};
switchBtn();
$input.on( {
blur() {
let $this = $( this ),
name = $this.attr( 'name' ),
val = $this.val(),
type = {
phone: () => !checkMobileAndTel( val ) && '不是一個(gè)手機(jī)號(hào)碼',
name: () => !isChn( val ) && '不是全中文',
plate: () => !isLicenseNo( val ) && '車牌不對(duì)'
},
exec = ( val ) => {
status[ name ] = val ? console.log( val ) : true;
( ( statusVal ) => {
console.log( statusVal );
statusVal.length === 3
&& statusVal.every( v => v === true )
? switchBtn( true )
: switchBtn();
} )( Object.values( status ) );
};
type[ name ]
&& exec( type[ name ]() );
}
} );
$btn.on( {
click() {
$.ajax();
}
});
});
基本思路是如此,其實(shí)還有優(yōu)化的地方,比如:
1.只用blur來(lái)判斷并不妥,還必須讓用戶做一次移出焦點(diǎn)操作。
2.input DOM結(jié)構(gòu)優(yōu)化的話,可以進(jìn)一步減少js判定處理。
3.用disabled來(lái)控制不可點(diǎn)擊、效果的想法,也可以進(jìn)行優(yōu)化
這些你可以再好好想想
題目若理解為最多只能輸入兩位小數(shù),則用/^(-)?(0|[1-9]\d*)(\s|$|\.\d{1,2}\b)/ 完美匹配以下情況:
var reg = /^(-)?(0|[1-9]\d*)(\s|$|\.\d{1,2}\b)/;
reg.test('0'); //true
reg.test('0.1'); //true
reg.test('1.23'); //true
reg.test('50'); //true
reg.test('-1.23'); //true
reg.test('-0.3'); //true
reg.test('00'); //false
reg.test('-00'); //false
reg.test('08'); //false
reg.test('0.123'); //false
reg.test('1.123'); //false
若理解為必須輸入兩位小數(shù), 則用 /^(-)?(0|[1-9]\d*)\.\d{2}$/
var reg = /^(-)?(0|[1-9]\d*)\.\d{2}$/;
reg.test('0.12'); //true
reg.test('1.12'); //true
reg.test('5.123'); //false
reg.test('0.123'); //false
reg.test('00.12'); //false
reg.test('01.12'); //false
把,ensure_ascii=False去掉就行了
import json
node = "測(cè)試中文"
data = json.dumps({'touser':"@all",'toparty':"@all",'msgtype':"text",'agentid':"1000002",'text':{'content':node},'safe':"0"},ensure_ascii=False)
data.encode('iso-8859-1') #報(bào)錯(cuò)
data = json.dumps({'touser':"@all",'toparty':"@all",'msgtype':"text",'agentid':"1000002",'text':{'content':node},'safe':"0"})
data.encode('iso-8859-1') #正常
還不行就試試requests.post的data不json.dumps, 直接傳
data = {'touser':"@all",'toparty':"@all",'msgtype':"text",'agentid':"1000002",'text':{'content':node},'safe':"0"}
requests.post(url, data=data) # 數(shù)據(jù)直接傳字典圖片的父級(jí)固定住高度就好了
//新聞?lì)愋颓袚Q
if(isset($_GET['newstype']) && !empty($_GET['newstype'])){
}
virtualbox好像是分免費(fèi)版和商業(yè)版的。推薦你用Parallels Desktop.正版是400多一年,我這里有破解的。
咳咳,老朋友來(lái)了。
1.首先是存儲(chǔ)的問(wèn)題,存儲(chǔ)數(shù)組可以使用字符串的一個(gè)字段來(lái)存,將數(shù)組 JSON.stringify()序列化之后存成字符串。
2.建議使用Sequelize這個(gè)orm庫(kù),一是封裝很多很方便的sql操作,也可以用原生sql,二是避免sql注入。
3.express響應(yīng)json直接用res.json(obj)。
4.上述代碼的query的if err那里建議加上return,因?yàn)闆](méi)有用else,會(huì)導(dǎo)致響應(yīng)兩遍而報(bào)錯(cuò) Can't set headers after they are sent
emmmm
1.應(yīng)該是不行的 你可以嘗試一下
2.es6中json可以簡(jiǎn)寫{ App }={ App:App }
3.如果你是sublime vscode aton cmd+p搜索router/index.js
看你需求,是整個(gè)table都不要還是只是替換掉tbody里面的內(nèi)容。
如果是后者,只要把三元表達(dá)式內(nèi)的空字符串替換成
<tr><td colSpan={tableHeader.length}>沒(méi)內(nèi)容</td></tr>加上try catch看看是否有異常跑出。
或許你的data本就不應(yīng)該放在redux中,而應(yīng)該考慮其他的地方存儲(chǔ),比如localStorage ...
最簡(jiǎn)單的方法就是給路由加個(gè)別名
{
path: '/Strategy',
alias: '/Strategy.html',
component: Strategy
}北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。