2012-02-23 98 views
1

我想使用MongoDB存儲我的用戶位置歷史記錄(當然,得到他們的同意)。我看到以下三種選擇:用於存儲用戶位置歷史記錄的MongoDB架構

  1. 爲所有用戶創建一個位置集合。每個文檔都有一個userId字段和一個時間字段,這兩個字段都將被編入索引。這個集合中的行數可能會超過1億個。
  2. 用戶將其位置設置爲嵌入式數組,創建一個集合。這使得搜索位置更加困難,因爲MongoDB顯然不支持返回嵌入式文檔的查詢。
  3. 使用他/她的位置歷史記錄爲每個用戶創建一個集合。我意識到一個MongoDB實例的24K集合的限制,我認爲現在這個限制是可以忍受的。

我很感激任何反饋,這可以幫助我做出選擇。

感謝和歡呼聲, 喬治

+0

這真的取決於你在找什麼for--你有什麼打算要查詢呢?如果用戶去過特定的地點,或者某個地點是否有很多用戶經常光顧,如果選擇架構#1,則可以在userId和location_id上編制索引;對於#2,如果您希望location_id爲每個用戶穩步增加,那麼這將以性能爲代價。 – Barrie 2012-02-23 22:21:20

+0

謝謝巴里。目前還不清楚我需要什麼樣的查詢。這是一個探索性項目。我認爲很可能,我會執行一些涉及尋找最近朋友的功能。這就是爲什麼我最喜歡的是目前的選項1。 – BumbleGee 2012-02-23 22:25:52

+0

它應該是。這是唯一提供靈活性的選項,不會對擴大到24k以上的用戶施加限制。去1。 – 2012-02-24 09:22:42

回答

2

正如評論上面提到的,我選擇了選項1,必須在這一點上沒有後悔。謝謝你的幫助。

乾杯, 喬治

相關問題