鍍金池/ 問(wèn)答
款爺 回答

mongo 對(duì)單一文檔的寫(xiě)操作總是原子的.
其實(shí)題主是想要一個(gè)權(quán)威的說(shuō)法, 肯定沒(méi)有什么比官方文檔更權(quán)威了:

In MongoDB, a write operation is atomic on the level of a single document, even if the operation modifies multiple embedded documents within a single document.

When a single write operation modifies multiple documents, the modification of each document is atomic, but the operation as a whole is not atomic and other operations may interleave.

在 mongo 中, 單個(gè)文檔的寫(xiě)操作總是原子的, 即使同時(shí)更新單一文檔中的多個(gè)嵌套文檔也是如此.

當(dāng)一個(gè)操作同時(shí)更新了多個(gè)文檔的時(shí)候, 該操作對(duì)每個(gè)單一文檔的寫(xiě)操作是原子的, 但整個(gè)批量更新操作并不是原子的, 其他操作有可能會(huì)被交錯(cuò)執(zhí)行.

參考: mongo 官方文檔 - Atomicity and Transactions

一個(gè)設(shè)計(jì)良好的模塊,拿給別人用,那人需要一些新功能,應(yīng)該怎么用呢,是修改已有模塊代碼?還是用別的手段進(jìn)行擴(kuò)展?開(kāi)閉原則就是你的模塊要是足夠牛逼,就不會(huì)逼著別人改你的源碼╮(╯_╰)╭ 在使用足夠牛逼的模塊時(shí),要通過(guò)擴(kuò)展來(lái)實(shí)現(xiàn)自己的功能而不是改人家代碼。

單一職責(zé)就好理解了,對(duì)于一個(gè)一個(gè)的組件來(lái)說(shuō),多功能是沒(méi)必要的,沙發(fā)是沙發(fā),床是床,沙發(fā)床只能是權(quán)宜之計(jì)。

兩者之間相同的地方就是“如無(wú)必要,勿增實(shí)體”,沒(méi)有必要改代碼就不要改代碼,沒(méi)必要加功能就不要加功能。通過(guò)組件之間的拼接組合實(shí)現(xiàn)整體功能,這樣就能實(shí)現(xiàn)“高內(nèi)聚,低耦合”的理想了。

當(dāng)然這倆原則某種角度來(lái)說(shuō)也是矛盾的,模塊如何才能足夠牛逼?大而全就可以了,然而大而全顯然和單一職責(zé)沖突,所以這里就又有個(gè)權(quán)衡的問(wèn)題,不過(guò)不用擔(dān)心,“權(quán)衡”這種事情是無(wú)處不在的,“選擇比努力重要”說(shuō)的就是權(quán)衡的重要性。

抱緊我 回答

圖片描述

應(yīng)該就是 %d 的問(wèn)題 改為 %f 或者 %lf

安淺陌 回答

自己搞定了,原因是在1.11里 serve() 改變了寫(xiě)法

from django.conf import settings
from django.views.static import serve

# ... the rest of your URLconf goes here ...

if settings.DEBUG:
    urlpatterns += [
        url(r'^media/(?P<path>.*)$', serve, {
            'document_root': settings.MEDIA_ROOT,
        }),
    ]

來(lái)自 https://docs.djangoproject.co...

凹凸曼 回答

// 試試在main.js入口文件配合vue-router寫(xiě)這個(gè)

router.afterEach((to,from,next) => {
    window.scrollTo(0,0);
});
我甘愿 回答

我發(fā)現(xiàn)是你沒(méi)有命名文件名的錯(cuò)誤,準(zhǔn)確說(shuō)叫文件類(lèi)型 :

import requests
import urllib

url = 'http://i.qingting.fm/wapi/channels/82400/programs/2041562/pagesize/10'

#顯示進(jìn)度
def callbackfunc(blocknum, blocksize, totalsize):
    percent = 100.0 * blocknum * blocksize / totalsize
    if percent > 100:
        percent = 100
    print('下載進(jìn)度' + '%.2f%%'% percent)

html = requests.get(url)
for n in range(len(html.json()['data']['programs'])):
    m4aUrl_name = html.json()['data']['programs'][n]['name'].split(':')[1]+'.m4a'
    m4aUrl_path = html.json()['data']['programs'][n]['file_path']
    m4aUrl_path = 'http://od.qingting.fm/' + m4aUrl_path
    
    # 這樣下載
    urllib.request.urlretrieve(m4aUrl_path,m4aUrl_name)
    
    # 或者這樣,這個(gè)可以解決防爬問(wèn)題
    # print(m4aUrl_name)
    # mp = requests.get(m4aUrl_path)
    # with open(m4aUrl_name,'wb') as f:
    #     f.write(mp.content)
心夠野 回答
rs0:PRIMARY> db.test.find()
{ "_id" : ObjectId("5aa005259c15e1a37b54d616"), "x" : [ 1, 2, 3, 4 ] }
rs0:PRIMARY> db.test.update({}, {$rename: {x: 'y'}}, {multi: true})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
rs0:PRIMARY> db.test.find()
{ "_id" : ObjectId("5aa005259c15e1a37b54d616"), "y" : [ 1, 2, 3, 4 ] }

$rename是沒(méi)有問(wèn)題的。你的代碼里面只看出來(lái)rename了sex,并且這個(gè)在你的截圖里面是成功的。所以你rename extra的時(shí)候是怎么做的?
題外話(huà):為回答問(wèn)題的人考慮一下,截圖放這是讓別人照著截圖敲一遍你的代碼來(lái)測(cè)試嗎?

毀憶 回答

mode負(fù)責(zé)取數(shù)據(jù)(一般是原始數(shù)據(jù))
controller從model拿到數(shù)據(jù),然后處理成view展示需要的

controller一般負(fù)責(zé)業(yè)務(wù)邏輯處理 所以正則處理放到controller里面好一點(diǎn)
舊螢火 回答

首先不應(yīng)該用 match_phrase 進(jìn)行搜索, match_phrase 是為了搜索一些精確的短語(yǔ)的關(guān)鍵詞搜索,所以每一個(gè)詞都會(huì)被當(dāng)做必須要匹配的詞.

這里可以考慮使用match來(lái)進(jìn)行搜索,使用類(lèi)似于ik-analyzer這類(lèi)中文分詞器進(jìn)行分詞

練命 回答

dev環(huán)境下構(gòu)建的文件都在內(nèi)存里,是不會(huì)輸出到磁盤(pán)上的

你好胸 回答

1、定原點(diǎn)
2、格子的角點(diǎn)用于判斷角度范圍,中心點(diǎn)判斷距離

墨小羽 回答

你好~我也是這么寫(xiě)的,請(qǐng)問(wèn)怎么做啊