鍍金池/ 問答/ 數(shù)據庫問答
咕嚕嚕 回答

解決

User.findOrCreate({
      where: {name: '小明'}, 
      defaults: {age: 5}
    })
    .spread((user, created) => {
      if(created === false) {
        user.update({......})
      }
    })

分析

  1. 查找小明
  2. 如果沒有

    1. 根據defaults創(chuàng)建數(shù)據
    2. 返回創(chuàng)建后的數(shù)據user 為剛創(chuàng)建的對象
    3. 返回是否創(chuàng)建created 為true
    4. 通過spread拆分返回的數(shù)組
  3. 如果已存在

    1. 返回已存在的數(shù)據
    2. user是已存在數(shù)據
    3. created為false
    4. 更新user即可

建議

比較常用的框架,插件,最好還是通讀一下文檔

參考

http://docs.sequelizejs.com/m...

拼未來 回答

建議查看一下這個問答—— https://segmentfault.com/q/10...
不管是oracle還是mysql, 反正都是用flask_sqlalchemy,想必是相通的,你可以試試。

魚梓 回答

原來的數(shù)據還在啊,你想一個個的刪除也行;一個個修改也行;如果數(shù)據龐大,就直接做錯誤兼容處理,少了。字段的表要特別處理。
最好的當然是做到和schema一致,因此最好替換所有數(shù)據

不二心 回答
  • fields的類型是Array,表示第一個參數(shù)內的部分字段名(例fields['count']的話,upsert只添加/更新count字段)
  • 正確的寫法:
model.upsert({
    id: 2,
    name: find.name
    count: 0
})
.then(inserted => { // 此參數(shù)表示是添加還是修改,true添加,false修改
    model.increment('count', {
        by: 2,
        where: {id: 2}
    });
});
涼汐 回答

https://docs.mongodb.com/manu...

db.currentOp(
    {
      $or: [
        { op: "command", "query.createIndexes": { $exists: true } },
        { op: "none", ns: /\.system\.indexes\b/ }
      ]
    }
)
忘了我 回答
一天一個手機號碼phone只能提交一次訂單

可以從數(shù)據庫的設計方面進行調整

根據業(yè)務邏輯,手機號和天 這兩個字段需要聯(lián)合唯一

在表中新增 the_data 字段,字段的值是 這行記錄插入時的日期(如20171219),將手機號字段 和 天數(shù)字段 聯(lián)合唯一,就可以完全杜絕一天內重復提交的可能了

來守候 回答
Session.commit()

你缺少這句命令。

另外,學 sqlalchemy,送你一個福利——https://github.com/eastossifr...

青裙 回答

雖然兩個相似,但兩個 sql 語句明顯不是同個內容來的,一是獲取數(shù)據總數(shù)量,二是查詢數(shù)據。至于為什么不寫在一起,明顯前面有個邏輯處理,需要根據具體情況再進行下一步,雖然也可以寫成一句,但是明顯不如這個清晰。

來守候 回答

function {
1.開啟事務

 // 查詢庫存(2.使用表鎖或者行鎖(防止高並發(fā)出現(xiàn)數(shù)據錯誤,但性能消耗會高,推薦行鎖) 假如你這裡考慮到性能問題,建議考慮使用nosql或者使用樂觀鎖。)
 // 用戶積分是否足夠(3.不夠就rollback)
 // 生成訂單并扣除庫存

4.提交事務
}

別硬撐 回答

建議建一張輔佐表 weekDay 0-6,num 全部為0, left join輔佐表就可以了。

巷尾 回答

拼寫錯誤。SQLALCHEMY_DATABASES_URI是錯的。SQLALCHEMY_DATABASE_URI才是對的。

逗婦惱 回答

多多嘗試自查問題嘛...

  1. mongodb 是否正確安裝。 --- 檢查目錄
  2. mongodb 服務是否正確啟動。 --- lsof -i:27017 查看27017端口是否有東東
  3. 看看你配置文件里是否允許httpinterface
  4. 看看你是否已經創(chuàng)建了用戶

都沒問題了...你在連接試試

兔寶寶 回答

你可以使用 ORM的對象操作數(shù)據庫,你也可以寫DQL操作數(shù)據,你可以寫 SQL來操作數(shù)據庫。

ORM 無法涵蓋所有的SQL標準,直接寫SQL又可能會有風險。就出了DQL,語法還和sql很像

礙你眼 回答

users // 用戶表
plugins // 插件
user_plugin_relationships //用戶插件關系表

你這個直接就起名a1_cat_relationships 然后在主鍵里把表是干什么用的寫到備注里
數(shù)據庫還是給開發(fā)人員看的,內部統(tǒng)一一套規(guī)矩就OK了

愛礙唉 回答

前端線上業(yè)務不建議使用這些東西,因為高并發(fā)情況下非常容易產生鎖,只有在后端統(tǒng)計模塊才會用

夏木 回答

根據你的問題的話,解決方式:

  1. Mybatis PageHelper支持奪標查詢,完全可以直接使用
  2. 如果題主又想單表查詢,又想一次查詢的話,不妨這樣試一下:

    1. 查詢第一張主表獲取主表數(shù)據,并將主表id篩選出來留作備用。
    2. 查詢第二張表,通過Criteria條件將主表id通過條件添加進去。
    3. 通過java自身業(yè)務邏輯將兩個表中的數(shù)據連接到一個Bo類中。
值得注意的地方
由于Mybatis中的存儲數(shù)據集合是一TheadLocal進行存儲的,注意startPage方法和獲取PageList位置,不然有可能獲取到錯誤的數(shù)據集合
舊言 回答

Object就是用HashMap,數(shù)組就是Array,所以一個對象嵌另外一個對象不就是一個HashMap嵌入另外一個HashMap嗎?疑問是在哪里?

終相守 回答

MongoDB是非關系數(shù)據庫,沒有列的概念。意味著你不用往每個文檔都新加一個空列,有就有,沒有就沒有,并不影響使用。