鍍金池/ 問答/ 數(shù)據(jù)庫問答

可以利用存儲(chǔ)過程解決,循環(huán)執(zhí)行

SELECT Term, BeginDate, DATE_ADD(當(dāng)前的日期,INTERVAL 7 DAY), 當(dāng)前的周數(shù) FROM term_info
當(dāng)前的日期=DATE_ADD(當(dāng)前的日期,INTERVAL 7 DAY)
當(dāng)前的周數(shù)+1

結(jié)果保存到臨時(shí)表

黑與白 回答

MongoVUE已經(jīng)停止更新很久了,使用軟件之前看一下它本身的版本和它支持的軟件版本就可以發(fā)現(xiàn)了。
替代產(chǎn)品有:

  • MongoDB Compass
  • MongoChef
  • Robomongo
獨(dú)白 回答

不是 mongodb 的問題,是 Promise 使用的問題,如果你的3個(gè) save 沒有先后關(guān)系的話可以用 Promise.all:

var mongoose = require('mongoose')
const Project = mongoose.model('Project')
exports.createProject = async(data) => {
    data.m.projectModelId=data.m.projectModel.split(',')[0]
    data.m.projectModelName=data.m.projectModel.split(',')[1]
    delete data.m.projectModel
    const p1 =  new Project(data.m).save()
    const p1 =  new ProjectData(data.formModels).save()
    const p1 =  new ProjectData(data.tableModels).save()
    try {
        await Promise.all([p1, p1, p3])
        console.log('save success')
    } catch (e) {
        console.log('save failed')
    }
}
妖妖 回答

分庫分表是解決查詢效率的問題。一點(diǎn)小想法,可不可以這么來理解
1.對查詢速度最敏感是用戶,優(yōu)先考慮以用戶ID來分割,優(yōu)化前端用戶的查詢速度
2.店鋪ID和訂單ID另建一張冗余表來建立關(guān)聯(lián)
3.訂單和商品是多對多關(guān)系,可以以商品ID來分表,并建冗余表關(guān)聯(lián)
4.可不可以引入其他技術(shù)來實(shí)現(xiàn),比如mongodb、E Search

我說下我們的做法,我們每天的交易數(shù)據(jù)量是200萬以上,核心在后半夜交易量極少的情況下做跑批清算,這個(gè)動(dòng)作每天只做一次,在早上上班之前跑出結(jié)果,然后由清算人員進(jìn)行人工審核。數(shù)據(jù)庫用的是oracle10g,公司購買的正版。即使是埋點(diǎn),從運(yùn)營角度出發(fā),也是要寫入日志庫,然后再做二次分析。

近義詞 回答
  1. 首先這里提到了生成時(shí)間戳,這個(gè)時(shí)間戳的作用是什么?感覺不要.addCreatedAt方法(要不要時(shí)間戳)也可以???

對,不要也可以,生成時(shí)間戳的方法很多,我覺得作者的主要目的是演示怎么使用plugin(沒看到上下文不確定)。

plugin()是mongolass自帶的方法?我在網(wǎng)上沒有看到相關(guān)內(nèi)容。

抱歉我也沒有看到。查了一下mongolass并不是十分流行的一個(gè)庫,自己的文檔中也沒有說明有這樣的方法。這種問題最好的解決辦法只有自己去讀源代碼,或者聯(lián)系庫作者。文章作者看樣子也很了解這個(gè)庫,可以與他聯(lián)系看看。
plugin的源代碼的話可以在index.js中找到;
里面的hook可選值可以在schema.js中找到;
具體還要看你想干什么。

擱淺 回答

你可以試試pymsql,這個(gè)庫也很好用

終相守 回答

$map,$reduce,$filter (segmentfault無法正確轉(zhuǎn)義美元符號(hào),湊合看吧……)這些運(yùn)算符在很多場景下可以幫助我們避免$unwind,語法請參考下文檔。對于你的要求,可以用$filter直接解決問題:
文檔格式

{
    "_id" : ObjectId("5a6d7c5e0664b8343e7e126b"),
    "keyID" : "111111111111",
    "price" : 123,
    "remark" : [
        {
            "city" : "beijing",
            "point" : "A"
        },
        {
            "city" : "shanghai",
            "point" : "A"
        },
        {
            "city" : "guangzhou",
            "point" : "C"
        }
    ]
}

aggregation寫法

db.test.aggregate([{
    $match: {
        "remark.point": "A"
    }
}, {
    $project: {
        _id: 1,
        keyID: 1,
        price: 1,
        remark: {
            $filter: {
                input: "$remark",
                as: "remarks",
                cond: {
                    $eq: ["$$remarks.point", "A"]
                }
            }
        }
    }
}])
囍槑 回答

是這樣子的,我理解你的意思是,你查出一個(gè)訂單A,再查出一個(gè)訂單B,然后兩個(gè)訂單的參數(shù)都不一樣,但是你又想把兩個(gè)訂單合在一起,你可以寫個(gè)實(shí)體類,把訂單A和訂單B的參數(shù)放在同一個(gè)實(shí)體類中,然后這個(gè)實(shí)體類就可以當(dāng)做一個(gè)傳輸數(shù)據(jù)類

綰青絲 回答

比如說去銀行取錢,那么取錢銀行會(huì)在卡上減金額,顯示余額和會(huì)再次讀取余額.如果此時(shí)你老婆在手機(jī)上買了一個(gè)口紅,那么此時(shí)你顯示的余額是有問題的.

蟲児飛 回答

最終改用redis存儲(chǔ)了。再也沒有延遲。
但redis的存儲(chǔ)空間比較寶貴,用速度換取空間還是用空間換取速度,這是一個(gè)問題。


折騰了一周,最后找出問題,其實(shí)造成性能下降的原因是某個(gè)查詢語句,不小心查詢到了1萬條符合的記錄,加起來好幾百M(fèi)B呢,多次查詢,可想而知。


又折騰了一兩天,最后redis爆滿了,只能換回來了。redis內(nèi)存比較昂貴,最好不要輕易放大量的東西。

朽鹿 回答

Model.findById

與 findOne 相同,但它接收文檔的 _id 作為參數(shù),返回單個(gè)文檔。_id 可以是字符串或 ObjectId 對象。

Model.findById(obj._id, function (err, doc){
  // doc 是單個(gè)文檔
});
痞性 回答
  1. 數(shù)據(jù)庫里流水表記錄金額變動(dòng)的時(shí)候就記錄好當(dāng)時(shí)的余額。既能實(shí)現(xiàn)你這個(gè)功能,也方便審計(jì)
  2. 不動(dòng)數(shù)據(jù)庫的話,先查出所有的明細(xì),然后根據(jù)類型自己計(jì)算出來每一筆對應(yīng)的余額。

其他的想不到了,或者可以兩個(gè)結(jié)合,按日期分段來記錄余額,查詢的時(shí)候只要算少量的流水就能算出來,感覺沒什么必要

情殺 回答

設(shè)置一個(gè)定時(shí)器,剛開始讓所有的table的div都顯示,在頁面打開若干秒或者毫秒之后,讓不該顯示的div隱藏就好了hide(),目前完美解決,后續(xù)有問題再續(xù)問

尤禮 回答

是不是config文件在這個(gè)路徑下C:/Program Files/MongoDB/Server/3.6/bin
多了一個(gè)bin

涼汐 回答

完全可以!某些業(yè)務(wù)場景特別適合這種嵌套的子集合設(shè)計(jì)。要用到數(shù)據(jù)project數(shù)據(jù)的時(shí)候 ,需要一并用上task。 這種只需要查詢一張表,效率很高。 而且mongo對子集合的支持也比較好。

乞許 回答

別拿sql server的方法,在mysql上用