后來(lái)通過(guò)其他渠道解決了該問(wèn)題。
通過(guò)在設(shè)置文件中添加 bind_ip=0.0.0.0,再重啟mongodb,就解決了
題主沒(méi)發(fā)現(xiàn)你的 is_read
的值全是1
嗎,感覺(jué)是 OR
、AND
的優(yōu)先級(jí)問(wèn)題,我不太記得 MySQL 的WHERE
能不能通過(guò)加括號(hào)來(lái)改各個(gè)條件語(yǔ)句的優(yōu)先級(jí)了,你可以試試。
INSERT INTO
position (name, departmentId) values ('開面料', 1);
少了一個(gè)INTO
關(guān)鍵字
你的parent_id
字段和_id
字段的數(shù)據(jù)格式應(yīng)該一致的,這樣設(shè)計(jì)才合理:
以下回答是在你的parent_id
字段和_id
字段的數(shù)據(jù)格一致的情況下:
用聚合函數(shù)aggregate
db.getCollection('test').aggregate([
{$match:{"parent_id" :"0"}},
{$lookup:{from:'test',localField:'_id',foreignField:'parent_id',as:'items'}}
])
jackson 字段動(dòng)態(tài)過(guò)濾
https://github.com/bohnman/squiggly-filter-jackson
https://github.com/narusas/SpringMvcJacksonFilter
https://github.com/shihyuho/jackson-dynamic-filter
使用AOP;自己定義注解,然后在返回的時(shí)候加上需要過(guò)濾的字段.
切面到自己定義的注解上,然后使用上面的工具,我自己使用 https://github.com/bohnman/sq...
這是我的工具類
https://github.com/yujunhao8831/spring-boot-start-current/blob/master/aidijing-common/src/main/java/com/aidijing/common/util/JsonUtils.java
實(shí)現(xiàn) ResponseBodyAdvice<T> 接口,如果這樣,那么就需要使用統(tǒng)一的返回值類型,把之前的返回值包裝起來(lái).
這樣在Spring Response 寫出去之前,你可以對(duì)這些數(shù)據(jù)進(jìn)行處理,還是使用jackson的過(guò)濾特性.
我之前就是這樣做的, https://github.com/yujunhao88... 你可以參考下
返回之前就立馬進(jìn)行過(guò)濾.
我之后準(zhǔn)備采用這個(gè), https://github.com/yujunhao88...
你可以參考下,不過(guò)這不是最終的,還在完善中
直接全部替換唄,何必這么麻煩。。。
或者:用第三方的唯一id來(lái)判斷
你這是scrapy框架嗎?這是有優(yōu)先級(jí),越小越優(yōu)先。
數(shù)據(jù)庫(kù)原生的話字符串是沒(méi)有單增這一說(shuō)法的吧,你可以在應(yīng)用層做,比如:
SELECT CONCAT("KZ",id) as id from table1;
一個(gè)基礎(chǔ)字段的主表
一個(gè)自然人的表 有個(gè)ren_id
一個(gè)法律實(shí)體的表 有個(gè) fa_id
然后主表最后關(guān)聯(lián)時(shí)就
type = ren | fa
link_id = *
根據(jù)type去讀對(duì)應(yīng)表的link_id
我理解下需求如下:
實(shí)現(xiàn)思路:
間隙鎖是為了防止幻讀
MySQL InnoDB 鎖——官方文檔
https://segmentfault.com/a/11...
為什么要用16進(jìn)制呢,整數(shù)類型肯定是最適合用作主鍵的,還可以設(shè)為自增;
千萬(wàn)別用varchar類型的主鍵,insert和一些select會(huì)變慢。
每個(gè)docker容器都有自己的ip,一般docker的ip是以172.17.0.x這樣的形式分配的。
你的宿主機(jī)也是有ip地址的。你在docker里面寫127.0.0.1是有問(wèn)題的,那只會(huì)指向你自己的docker本機(jī)。
正確的做法是,寫成宿主機(jī)的ip地址就可以了。
歡迎加Q群交流討論Java技術(shù):696883318
使用python的collections
import json
from collections import defaultdict
def main():
ret = defaultdict(list)
data = [
{'_id': '5abb4f9ca7e2c54c757b3e48',
'amount': 8400,
'buyerEmail': 'otzYzwMh24edWk8NxSJOqCSZREe0',
'from': 'weixin',
'orderid': '2018032816173212079',
'real': 8400,
'status': 1,
'tradeNo': '4200000099201803287230332578',
'uid': '5abb36051a62067bf7e30178' # 需要把ObjectId處理成字符串
},
{'_id': '5b6699f6df03ec3294d7c0a4',
'amount': 100,
'buyerEmail': 'otzYzwC3YwRdu7QrWLXqS3VRJybI',
'from': 'weixin',
'orderid': '2018080514322245193',
'real': 100,
'status': 1,
'tradeNo': '4200000148201808052403940202',
'uid': '5a5738411a62061972e128cb' # 需要把ObjectId處理成字符串
},
{'_id': '5b6699f6df03ec3294d7c0a4',
'amount': 200,
'buyerEmail': 'otzYzwC3YwRdu7QrWLXqS3VRJybI',
'from': 'weixin',
'orderid': '2018080514322245193',
'real': 200,
'status': 1,
'tradeNo': '4200000148201808052403940202',
'uid': '5a5738411a62061972e128cb' # 需要把ObjectId處理成字符串
},
]
for d in data:
ret[d.get('uid')].append(d)
print(json.dumps(ret, indent=2))
if __name__ == '__main__':
main()
鎖有沒(méi)有嵌套?是不是鎖到同一個(gè)變量了?
是不是在第二步就死鎖了?
不用回退版本,本人親測(cè)高版本連接操作數(shù)據(jù)庫(kù) 代碼如下
// 3.0 以上 高版本語(yǔ)法
const express = require('express');
const router = express.Router();
const mongoClient = require('mongodb').MongoClient;
const assert = require('assert');
mongoClient.connect("數(shù)據(jù)庫(kù)地址", function(err, client) { assert.equal(null, err);
// admin 為 數(shù)據(jù)庫(kù)名稱;
const db = client.db("admin");
// PASS 為 數(shù)據(jù)庫(kù)里面的某一個(gè)集合;
const pass = db.collection('PASS');
pass.find({}).toArray(function(err, docs) {
assert.equal(err, null);
console.log(docs);
});
});
module.exports = router;
連接方式有問(wèn)題,應(yīng)該使用mongo --host 192.168.1.102 --port 27017 后面不知不覺(jué)就好了. 尷尬
這個(gè)問(wèn)題被我發(fā)現(xiàn)了,因?yàn)槲业娜掌诶锩嬗幸粋€(gè)日期是 9999-12-31,然后在這個(gè)日期上面 + 1了,加一個(gè)前置條件:date <> date'9999-12-31'
可以參考下spring事務(wù)的傳播屬性來(lái)解決這個(gè)問(wèn)題, for循環(huán)內(nèi)調(diào)用一個(gè)新方法處理這一條數(shù)據(jù),并在方法上標(biāo)注 @Transactional(propagation = Propagation.REQUIRES_NEW)
用來(lái)新開啟一個(gè)事務(wù)。
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國(guó)家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。