鍍金池/ 問答/ 數(shù)據(jù)庫問答
忘了我 回答

錯(cuò)誤信息中顯示 127.0.0.1:27017已經(jīng)被占用了,之所以會(huì)出現(xiàn)這種現(xiàn)象,我猜是不是因?yàn)橹貜?fù)conncet mongodb導(dǎo)致的,建議:一種是把所有邏輯都放到connect大回調(diào)里,另外一種是使用連接池

陪我終 回答

類的方法 可以同時(shí)被多個(gè)線程執(zhí)行,除非對(duì)方法加鎖。
類加載時(shí) 方法信息保存在一塊稱為方法區(qū)的內(nèi)存中,你可以把方法信息理解為 一段代碼信息,這個(gè)數(shù)據(jù)是不變的,多個(gè)線程都能讀取執(zhí)行。

喜歡你 回答

推薦幾本書吧。

初級(jí)用法:可以看看mysql必知必會(huì)

高級(jí)用法: https://segmentfault.com/a/11...

深入原理: https://segmentfault.com/a/11...

久舊酒 回答

好像遇到過這個(gè)問題,你配置'HOST': '127.0.0.1'時(shí)候django會(huì)通過localhost訪問數(shù)據(jù)庫而不是ip地址127.0.0.1。
但是你的數(shù)據(jù)庫沒有配置root用戶通過localhost域名訪問的權(quán)限

mysql> use mysql; 
mysql> update user set host = 'localhost' where user = 'root';   -- 允許通過localhost域名訪問
mysql> update user set host = '%' where user = 'root';   -- 允許通過任意域名訪問,和上一條任選一個(gè)
mysql> select host, user from user; 
mysql> flush privileges;

或者

尛憇藌 回答

仿照已有的再依葫蘆畫瓢一個(gè)model_name字段,
在查詢的時(shí)候這樣寫:
ETL.query.filter(db.and_(ETL.ID==eid, ETL.Model_Name==model_name))

尐懶貓 回答

提示你沒有配置數(shù)據(jù)庫信息,提示沒有連接到數(shù)據(jù)庫

故人嘆 回答
  1. TIMESTAMP類型在表中存儲(chǔ)的內(nèi)部形式是一個(gè)8字節(jié)數(shù)值, 可表示的時(shí)間范圍是 公元前4713年~公元294276年,最小單位是微妙(microsecond)
  2. 因?yàn)槭菙?shù)值,所以你不用擔(dān)心其排序性能
  3. 這個(gè)問題比較復(fù)雜

    TIMESTAMP類型雖然是一個(gè)8字節(jié)數(shù)值,但是為了向用戶屏蔽內(nèi)部細(xì)節(jié),它的輸出都是以字符串的形式來輸出時(shí)間戳的(時(shí)間戳的格式可以指定)。從道理上,PG社區(qū)并不希望直接把內(nèi)部數(shù)值暴露到外部。

    如果非要以數(shù)值類型查出來,目前好像也沒有辦法能夠查到其原始的8字節(jié)數(shù)值,但是可以通過下述方法"曲線救國(guó)" —— 即把TIMESTAMP類型轉(zhuǎn)換為Unix時(shí)間戳(1970 年 1 月 1 日(00:00:00 GMT)以來)后以整型顯示:

    假設(shè)有下面一張表

    CREATE TABLE foobar (col1 INTEGER, col2 TIMESTAMP);

    那么想以所謂的數(shù)值形式查詢col2的值的SQL語句如下:

    SELECT CAST(EXTRACT(EPOCH FROM col2) AS INTEGER) FROM foobar;

    關(guān)于EPOCH的用法可以參照手冊(cè)9.9. Date/Time Functions and Operators

淚染裳 回答

Column 對(duì)象 的 in_ 方法。
filter需要傳遞的參數(shù)為表達(dá)式,此處剛好。
filter_by需要傳遞關(guān)鍵字參數(shù),所以此處in_沒法使用。

in_OOP非OOP兩種模式中的使用-demo:

# 通用
from sqlalchemy import (
    create_engine,
    Column,
    Integer,
    String
)

# oop方式所需
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 非oop方式所需
from sqlalchemy import (
    Table,
    MetaData,
)
from sqlalchemy.sql import func


Base = declarative_base()

class Table1(Base):
    __tablename__ = 'table1'

    id = Column(Integer, primary_key=True, autoincrement=True)
    name = Column(String(55))

    def __init__(self, name):
        super(Table1, self).__init__()
        self.id = None
        self.name = name

    def __repr__(self):
        return '<Table1 {0}>'.format(self.id if not self.id is None else '')

uri = 'sqlite:///:memory:'
engine = create_engine(uri)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine, autocommit=False)

############# 添加對(duì)象, 填充測(cè)試數(shù)據(jù)
session = Session()
for name in 'zhang,wang,li,gong,chen,zhao'.split(','):
    obj = Table1(name)
    session.add(obj)
session.commit()

lst_filter = ['wang', 'li', 'zhao']
############# OOP方式查詢
# 查詢總數(shù)
Q = session.query(Table1)
print(Q.count())
# 篩選
Q = Q.filter(Table1.name.in_(lst_filter))
result = Q.all()
print(result)
session.close()

############# 非OOP方式查詢
metadata = MetaData(bind=engine)
table = Table('table1', metadata, autoload=True)

# 查詢總數(shù)
stmt = func.count(table).select()
print(stmt.execute().fetchone())
# 篩選
stmt = table.select().where(table.c.name.in_(lst_filter))
rp = stmt.execute()
result = rp.fetchall()
# print(result)
print(len(result))

engine.dispose()

執(zhí)行結(jié)果:

6
[<Table1 2>, <Table1 3>, <Table1 6>]
(6,)
3

參考:

  • in_

    Implement the in operator.
    In a column context, produces the clause a IN other. “other” may be a tuple/list of column expressions, or a select() construct.
  • filter

    apply the given filtering criterion to a copy of this Query, using SQL expressions.
  • filter_by

    apply the given filtering criterion to a copy of this Query, using keyword expressions.
吢涼 回答

var arr1 = [

{
    label:'張三',
    value:'1',
},
{
    label:'李四',
    value:'2',
},
{
    label:'王五',
    value:'3',
}

];

var arr2 = ['1','2'];

var resArry = [];

for(var item of arr1){

for(var str of arr2){
    if(str == item.value){
        resArry.push(item.label)
    }
}

}
console.log(resArry)

安于心 回答

使用watch屬性監(jiān)控router變化,再執(zhí)行函數(shù)即可

來守候 回答

關(guān)于亂碼:
$conn = mysqli_connect('localhost','root',''); 下面添加:

mysqli_query($conn,'set names utf8');

就可以了,加注釋不影響讀取,測(cè)試代碼可以執(zhí)行:
圖片描述

拽很帥 回答

@enhancer 兄弟的鏈接是404,我把localhost改成127.0.0.1了,還是報(bào)錯(cuò)


問題已經(jīng)找到:
原來我把連接mongodb的設(shè)置:

module.exports = {
  cookieSecret: 'myblog',
  db: 'blog',
  host: 'localhost'
};

中的localhost改了,但是session存儲(chǔ)連接的localhost沒改:

app.use(session({
    secret: settings.cookieSecret,
    key: settings.db,
    cookie: {maxAge: 1000 * 60 * 60 * 24 * 30},//30 days
    store: new MongoStore({
      db: settings.db,
      url: 'mongodb://127.0.0.1:27017/blog'
    })
}));

修改后在離線狀態(tài)可以啟動(dòng),沒問題!


感謝諸位幫忙解決問題,謝啦Thanks?(?ω?)?
選擇 回答

先完成緊急的業(yè)務(wù)需求,之后在重新弄個(gè)int(38)的字段,因?yàn)楸旧磉@個(gè)就該弄成整數(shù)的,再去填充數(shù)值,而沒必要去弄個(gè)varchar ,或者你直接給varchar添加個(gè)索引

疚幼 回答

《Redis實(shí)戰(zhàn)》第一章就簡(jiǎn)單介紹你這樣的場(chǎng)景
redis處理高并發(fā)讀寫問題,既然是讀寫,那么讀和寫肯定使用redis去處理。

入她眼 回答

session_handler相關(guān)函數(shù)貼一下,默認(rèn)是存文件的,你存數(shù)據(jù)庫證明這里有修改

枕邊人 回答
const result = await DinnerModel.find().populate({
    path: "foods"  // => 修改成 path: "content" 試試
})
挽歌 回答
> db.a.find({},{stories:1,_id:0})
{ "stories" : [ { "images" : "1.jpg", "title" : "標(biāo)題1" }, { "images" : "2.jpg",
 "title" : "標(biāo)題2" }, { "images" : "3.jpg", "title" : "標(biāo)題3" } ] }

> db.a.update({},{$push:{stories:{"images": "4.jpg","title": "標(biāo)題4"}}})

圖片描述

圖片描述