日期YYYY/MM/DD格式
有MongoDB的日期時間格式。用它。它使用的內存少於字符串,並且不需要額外的約定。從格式排序等同於0001-01-01到9999-12-31之間日期的順序排列,您的格式是理智的,但內置數據類型絕對適用於範圍查詢。
有〜50個不同的名稱,〜60種不同的類型1,〜20種不同類型2
你的鑰匙已經非常低的選擇性,所以個別指標可能是毫無意義的
我需要從這個數據庫讀取,通常是:
- a
(name,type1,type2)
,但所有日期均爲
對{name, type1, type2}
使用複合索引。如果您還需要按時間順序排序,則可能需要添加date
進行排序或使用像ObjectId這樣的單一主鍵並依賴於自然排序。
db.collection.ensureIndex({'name' : 1, 'type1' : 1, 'type2' : 1, 'date' : 1});
什麼是 '幾日' 幾日?我假設你的意思是「給定日期範圍內的所有日期」?使用date
的索引。 date
自然應該有更好的選擇性,所以個人密鑰是有意義的。
db.collection.ensureIndex({'date' : 1});
列表中的所有項目?任何訂購?你需要更具體的東西。請記住skip
/take
是昂貴的。
那麼,創建幾個索引來支持您的查詢。我不明白問題所在。 –