解決nodejs require module時循環(huán)引用會導(dǎo)致undefined的問題
這個一般在定義關(guān)聯(lián)的時候會用。
目前我的做法是把所有model的關(guān)聯(lián)放到一個js去做
import { Authorize, AuthorizeAttributes, AuthorizeInstance } from './authorize';
import { Comment, CommentAttributes, CommentInstance } from './comment';
import { Hit, HitAttributes, HitInstance } from './hit';
import { Moneylog, MoneylogAction, MoneylogAttributes, MoneylogInstance } from './moneylog';
import { Order, OrderAttributes, OrderInstance } from './order';
import { Post, PostAttributes, PostContentType, PostInstance } from './post';
import { Poundage, PoundageAttributes, PoundageInstance } from './poundage';
import { User, UserAttributes, UserInstance } from './user';
import { Withdrawal, WithdrawalAttributes, WithdrawalInstance } from './withdrawal';
Comment.belongsTo(Post, { foreignKey: 'post_id', as: 'post' });
Comment.belongsTo(User, { foreignKey: 'user_id', as: 'user' });
Order.belongsTo(User, { foreignKey: 'user_id', as: 'user' });
Order.belongsTo(Post, { foreignKey: 'post_id', as: 'post' });
Post.belongsTo(User, { foreignKey: 'user_id', as: 'user' });
Post.hasMany(Comment, { foreignKey: 'post_id', as: 'commentList' });
User.hasMany(Post, { foreignKey: 'user_id', as: 'posts' });
User.hasMany(Order, { foreignKey: 'user_id', as: 'orders' });
User.hasMany(Comment, { foreignKey: 'user_id', as: 'comment' });
安裝多版本python的命令行python版本問題?解決:python -V 或者py -V,python3 -V
安裝env環(huán)境控制問題?解決:pip3 install sqlalchemy
把條件查詢放到子查詢中。
查了下文檔,應(yīng)該是因為你這是兩次查詢,一次count查詢,一次skip加limit查詢,所以你的query查詢永遠都是最先指定的count查詢,所以你第二次的結(jié)果其實就是count返回的結(jié)果,所以是number類型的數(shù)字。
雖然不知道你為啥又不寫回調(diào),又不走Promise形式也能得到結(jié)果。我也就這么寫了~
分兩次查詢就行了,因為你第二次查詢是skip加limit,所以應(yīng)該沒辦法不走2次查詢又能得出總文檔數(shù)又能得出分頁查詢得結(jié)果。
const query1 = myModel.find({name:'xiaoming'});
const query2 = myModel.find({name:'xiaoming'});
const total = await query1.count().exec(); //所有name為xiaoming的文檔數(shù)量
const data = await query2.skip(20).limit(10).exec();
因為MongoDB對中文的支持需要安裝第三方分詞引擎RLP(Rosette Linguistics Platform)。這個引擎并不是免費的,所以對中文的支持也只在MongoDB企業(yè)版中支持。具體請參考文檔:https://docs.mongodb.com/manu...
你所使用的mongodb
是nodejs的一個package
,而不是原生的查詢語句,那是package生成的最終的結(jié)果。
Node.js MongoDB Driver API
文檔里寫很清楚find(query, options)
,options
的定義里是沒有_id
的,里面有projection
應(yīng)該就是你想要的。
你這是什么邏輯?你是要實現(xiàn) 2 是否包含在 1,2,3,4,5里面嗎?
spring4及以后的話,在你要訪問的那個接口上添加@CorsOrigin注解,允許該接口跨域訪問,如果是之前的話寫一個自己的filter全局過濾請求頭信息,具體自行Google
docker唄
你只需要一個webstorm IDE就行了
robomongo,挺不錯的
全面的分析可以參考 MongoDB 生態(tài) – 可視化管理工具
試試加這個配置:
spring.jpa.show-sql=true
從日志信息來看,spring bean close,JMX-exposed beans on shutdown,以及mongodb的連接關(guān)閉了。
如果想具體排查哪里出問題了, 先移除redis和mongodb相關(guān)依賴和操作,判斷是否存在問題,然后一個一個移回項目。
如果文檔中的 _id
字段是由 mongo 自動生成的, 那么本身這個字段就帶有時序, 因為 ObjectId 四要素
中就有插入時間, query 語句中啥也不寫, 其結(jié)果就是按時序排序的. 下面語句就可以返回 collection 中的最新 10 條數(shù)據(jù):
db.collection.find().sort({ _id : -1 }).limit(10)
也可以根據(jù) ObjectId 包含創(chuàng)建時間的特性, 通過構(gòu)造 ObjectId 的辦法, 來指定查詢某時間段內(nèi)的文檔. 下面的 python 程序可以查詢 2018-04-10 日之后插入到 collection 中的文檔 (手敲, 親測有效):
#!/usr/bin/python
import sys
import datetime
from pymongo import MongoClient
from bson import objectid
mongo_conn = MongoClient("mongodb://user:pass@11.22.33.44:27017")
gen_time = datetime.datetime(2018, 4, 10)
dummy_id = objectid.ObjectId.from_datetime(gen_time)
cursor = mongo_conn['your_db']['collection'].find(
{'_id' : {'$gt' : dummy_id} }
)
for v in cursor:
print(v)
所以, 你的需求中, 只需要保存 _id
字段即可, 或者保存一個時間戳也可以.
另, 如果你的這個 collection 被設(shè)置為 Capped Collections, 那么你還可以考慮使用 Tailable Cursors 來時刻獲取更新數(shù)據(jù). 當然我估計這應(yīng)該不符合你的使用場景.
參考:
mongo ObjectId
mongo Tailable Cursors
mongo Capped Collections
python datetime
4000次的循環(huán)本身并不大,如果循環(huán)里僅僅是對內(nèi)存的操作其實很快就應(yīng)該完成,但是你在循環(huán)里做了很多次數(shù)據(jù)庫操作,這應(yīng)該就是造成性能問題的根本原因。盡管每條sql執(zhí)行都很快,但是你忽略了每次執(zhí)行所帶來的網(wǎng)絡(luò)io開銷時間。我才想4000次的循環(huán)里如此多的數(shù)據(jù)庫操作足以是你的腳本超時了,當你所提到超時時,我認為你的php運行在fast cgi模式下。那么你有兩種方法來解決
1,將sql操作合并,一次或幾次在循環(huán)之外一口氣得到所有的數(shù)據(jù),再在循環(huán)中進行分門別類。我相信這樣做會立竿見影的提升效率。
2, 如果這個操作不是及時性的,那么可以嘗試放在cli模式下運行,你不用修改代碼,盡管效率同樣低,但cli模式下腳本不會超時。
另外如果你所獲得到數(shù)據(jù)總量很大,那么還要考慮php本身為腳本所分配的最大可用內(nèi)存,如果這個值低于你獲取的數(shù)據(jù)所需要的內(nèi)存,那么即便在cli模式腳本還是得崩。這個配置好像是在php.ini里一個叫max_memory_size定義的,名字可能不準確,我記不太清了
會不會是權(quán)限問題
把項目代發(fā)放入www文件夾里面
開啟wamp.server 等待變綠色
用localhost/項目文件名稱訪問
sql
語句當然不支持,并沒有對象這個概念。要使用對象一般是通過orm
框架生成sql
語句進行查詢,比如sequelize
。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團,成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。