我是新來的MongoDB在SQL強大的背景,不知道什麼是設計以下場景的理想方式:MongoDB的架構設計/參與monogo分貝
我已經設置發送ping來機主機,我需要知道哪些機器在過去10分鐘內發送了ping。
我有2個類別:
pings
- 一個非常大的集合,每個機發送ping大約每隔10分鐘。machines
- 漂亮的小集合,約少1000臺機器
,我需要查詢的「活着」的機器,即所有在最後10分鐘發送Ping的機器。
目前我的模式是這樣的:MongoDB中
pings = {
_id - ObjectID
machineID - ObjectID
pingTime - ISODate
}
machines = {
_id - ObjectID
name - String
type - string
}
謝謝,我想過冗餘(它被稱爲在mongo中嵌入不是?)但如果我還想要關於機器的一堆屬性呢?所以我會以一個大的ping文檔結束......我不知道mongo是否適合我的用例,或者我應該留在RDBMS中...... – Michael
@Michael因此,您應該直接得到所有問題*首先* ,在建模之前。但是,對於發送ping的主機,您有一個有效的查詢,現在您可以爲有限的子集執行'db.machines.find({name:{$ in:resultset}})'。更好的是,假設你想要一個細節頁面,你只需要做一個簡單的查詢,比如'db.machines.find({name:nameOfMachineYouWantTheDetailsFor})''。 –
嗯..我明白你說了什麼,在SQL中進行所有標準化之後,再想這麼做... 你知道從sql到mongo的「遷移」教程嗎?也許在SQL中實現的場景以及它在Mongo中如何實現? – Michael