nModified:0
不是寫了么,沒有匹配到。fruit
是個(gè)數(shù)組所以 "fruit.price":price,
是什么?
subdocs
如果你的庫(kù)2就沒有sku表,可以通過mysqldump命令來把庫(kù)1中的sku表導(dǎo)出到文件,再把這個(gè)文件中的數(shù)據(jù)導(dǎo)入到庫(kù)2中即可:
$ mysqldump -uroot -proot --databases db1 --tables sku >/tmp/sku.sql
$ mysql -uroot -proot db2 < /tmp/sku.sql
如果你庫(kù)2本身也有sku表,只是想將庫(kù)1中庫(kù)2沒有的數(shù)據(jù)更新到庫(kù)2,那么首先你得通過insert ... select語句來操作,需要注意,語句最好不要一次性插入10w數(shù)據(jù),最好按一定條件分開,比如id,因?yàn)閙ysql內(nèi)部有一定限制:
INSERT INTO db2.sku
SELECT * FROM db1.sku
where
(db1.sku.id between 1 and 10000)
and (db2.sku沒有這條數(shù)據(jù));
INSERT INTO db2.sku
SELECT * FROM db1.sku
where
(db1.sku.id between 10001 and 20000)
and (db2.sku沒有這條數(shù)據(jù));
希望能幫助到你。
自己瞎寫的一個(gè)關(guān)于超級(jí)初級(jí)的數(shù)據(jù)表建立的一個(gè)總結(jié)
你可以簡(jiǎn)單看一下,因?yàn)橐仓皇呛?jiǎn)略寫,但建立數(shù)據(jù)表,無非是,確立你需要哪些表,而這些你是明確的。然后是確定每個(gè)表與表之間的關(guān)系,明確后可以建立對(duì)應(yīng)的關(guān)聯(lián)甚至關(guān)系表。更多的需要根據(jù)具體的需求,以及個(gè)人經(jīng)驗(yàn)積累,或者系統(tǒng)學(xué)習(xí)吧。我的知識(shí)只支持我說道這么一些了。
已解決
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Demo extends CI_Controller {
public function index() {
$con=mysqli_connect("localhost","root","***","test");
//輸出中文可以加一句 mysqli_query($con,"SET NAMES utf8");
$query = mysqli_query($con,"select * from user");
$array = array();
while($row = mysqli_fetch_assoc($query)){
$array[] = $row;
}
echo json_encode($array);
}
}
把crated_at字段拆分成年,月兩個(gè)字段,放在原表中.然后根據(jù)月字段就行g(shù)roup by.
不要在循環(huán)里面放Sql語句,可以把$row['prod_id']單獨(dú)拿出來,sql語句可以寫成wherein
select * from T1 where exists(select 1 from T2 where T1.a=T2.a)
select * from T1 where T1.a in (select T2.a from T2)
簡(jiǎn)而言之,一般式:外表大,用IN;內(nèi)表大,用EXISTS。
》詳情《
是req.session吧
使用DelayQueue
DelayQueue能做什么?
在我們的業(yè)務(wù)中通常會(huì)有一些需求是這樣的:
那么這類業(yè)務(wù)我們可以總結(jié)出一個(gè)特點(diǎn):需要延遲工作。
由此的情況,就是我們的DelayQueue應(yīng)用需求的產(chǎn)生。
給你個(gè)鏈接 http://blog.csdn.net/u0110017... 不過這是JAVA的 不知道PHP 是什么
因?yàn)镮nnoDB其他方面的優(yōu)點(diǎn)可以完全碾壓MyISAM,比如崩潰恢復(fù)快,支持事務(wù),支持行級(jí)鎖,支持真正的熱備份等等。多了這么多功能當(dāng)然更耗資源羅
可以看看這本書 https://segmentfault.com/a/11...;
層級(jí)節(jié)點(diǎn)
,做code,看一下我天朝的行政區(qū)劃代碼,
第一層 | 第二層 | 第三層 |
---|---|---|
100 |
100100 |
100100100 |
200 |
200100 |
200100100 |
300 |
300100 |
300100100 |
查詢某個(gè)節(jié)點(diǎn)的子集(子子集等),like '100%'
;
id
與pid
保留,兩種模式。
PHP 用 PDO,一切交給PDO 就解決了
db.b.aggregate([
{$unwind: "$comment"},
{
$lookup:
{
from: "A",
localField: "comment.uid",
foreignField: "uid",
as: "guest"
}
},
{$group : {_id:"$title",fullDoc:{$push:"$$ROOT"}} // <---將整個(gè)文檔放進(jìn)來
]);
這樣做雖然可以達(dá)到你的目的,但是建議你還是考慮一下冗余。這里的數(shù)據(jù)一致性并沒有這么重要。
另外$lookup
雖然可以解決問題,但是它的性能并不是很好,并且不支持Sharding,慎用。
我用具體的代碼來解釋下吧
接口A,有方法X
public interface A {
public void methodX() throws IOException;
}
在用戶模塊有這樣一段調(diào)用
public class ModuleUser{
public void methodY(A a) throws IOException
{
a.methodX();
}
}
現(xiàn)在要對(duì)方法X增加一個(gè)異常,變?yōu)椋?/p>
public interface A {
public void methodX() throws IOException,DataFormatException;
}
這樣用戶模塊ModuleUser的方法Y就要修改,不修改,編譯就不會(huì)通過。
怎么樣解決呢?
方法1,新方法調(diào)用舊方法。(接口中不能新方調(diào)用舊方法,所以我改為抽象類)
public abstract class A {
public void methodX() throws IOException
{
try {
methodNewX();
} catch (DataFormatException e) {
throw new RuntimeException(e);
}
}
public abstract void methodNewX() throws IOException ,DataFormatException;
}
方法2: 以拋出一個(gè)unchecked異常,unchecked就是編譯器不檢查的運(yùn)行時(shí)異常。
如下
public interface A {
public void methodX() throws IOException,RuntimeException;
}
這樣用戶代碼也不用改。
但這兩個(gè)方法都不好。
作者喜歡的做法是這樣的(也是推薦的方式)。
在包中定義自己的異常
public class MyException extends Exception {
}
接口一開始就寫成
public interface A {
public void methodX() throws MyException;
}
用戶模塊就會(huì)是這樣的:
public class ModuleUser{
public void methodY(A a) throws MyException
{
a.methodX();
}
}
如果再遇到上面要加異常信息的情況
就為MyException創(chuàng)建一個(gè)子類,加接口A上,這樣用戶代碼就不用改,也能適配。
上面一段話大概就是想表達(dá)這個(gè)觀點(diǎn)。
因?yàn)檫@本書是國(guó)外人寫的,翻譯成中文,所以讀起來有點(diǎn)別扭。
英文原文是這樣的
There is one particular area with problems in changing interfaces in Java: adding an exception to the throws clause.
讀這本書,覺得不好理解的,就可試著看看英文原文。
populate
做不到,用aggregate
。
問題一
可能是數(shù)組上的索引,也就是Multikey Index。這是正常的。一個(gè)文檔的數(shù)組有多少個(gè)元素就有多少個(gè)key。
問題二
如果符合條件的一共只有31條,不就是31了嗎?
如果是輕量級(jí)服務(wù)器的話,應(yīng)該只需要在防火墻 放行 3306端口 即可,但你的服務(wù)器必須安裝mysql了。
注意,一般默認(rèn)的是沒有安裝mysql的。
不能!admin是管理你每個(gè)數(shù)據(jù)庫(kù)的用戶名和密碼,可以理解為該數(shù)據(jù)庫(kù)的白名單。默認(rèn)mongodb不開啟鑒權(quán),即不需要用戶名密碼就可以連接,如果你開啟,那么每個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)的用戶名密碼就保存在admin中
users // 用戶表
plugins // 插件
user_plugin_relationships //用戶插件關(guān)系表
你這個(gè)直接就起名a1_cat_relationships 然后在主鍵里把表是干什么用的寫到備注里
數(shù)據(jù)庫(kù)還是給開發(fā)人員看的,內(nèi)部統(tǒng)一一套規(guī)矩就OK了
北大青鳥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)過二十年潛心發(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ù)顧問,美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。