Я экспериментирую с MongoDB и хотел бы узнать мнение о наилучшем способе хранения доменных имен в коллекции domain
и у меня есть несколько вопросов:
- Доменные имена будут уникальными.Имеет ли смысл использовать все доменное имя в качестве ключа
_id
?Я не хочу использовать пользовательский идентификатор, так как я прочитал, что есть много плюсов, чтобы просто сохранить ObjectId
в качестве типа по умолчанию. - Или имя домена должно храниться в виде двух отдельных полей?Хранение домена как отдельных частей (т. Е. Google.com становится
{sld: "google", tld: "com"}
. Затем я бы добавил составной индекс {tld: 1, sld: 1}
. Это дает преимущество, заключающееся в том, что запросы могут находить домены в домене верхнего уровня. Это кажется более гибкимза счет двух полей вместо одного.
Домен, хранящийся в двух полях:
db.createCollection("domains",{
validator: {
$jsonSchema: {
properties: {
sld: {
bsonType: "string",
title: "Second Level Domain"
},
tld: {
bsonType: "string",
title: "Top Level Domain",
},
},
required: [
"sld",
"tld"
]
}
},
validationLevel: "strict",
validationAction: "error"
})