mongoose - 关于mongodb的建模,有人建议我 把 “商品”的“品牌名” 从ObjectId 转为 string,这样好吗?
天蓬老师
天蓬老师 2017-04-25 09:02:36
0
1
687

他说这样更方便查询,是呀,傻子也知道这样便于查询。我质疑说这样在存储时会不好,但他说有shortId什么的,求解答!

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(1)
给我你的怀抱

Cela nécessite une analyse détaillée d’entreprises spécifiques.
Si le nom de la marque est défini sur ObjectId, cela signifie qu'il existe un autre collection qui stocke la marque. Il s'agit d'une méthode de base de données relationnelle typique pour mongodb, chaque fois que vous souhaitez obtenir le nom de marque d'un produit, vous avez besoin d'une opération de lecture supplémentaire.

Si défini sur String, toutes les informations sur le produit et le nom de la marque peuvent être récupérées en une seule opération, mais il est très difficile de modifier la marque si vous avez également besoin d'obtenir des informations sur la marque en une seule requête, comme par exemple. le pays où se trouve la marque, il faut alors encore refaire la requête, car l'évolutivité n'est pas assez bonne.

Si défini sur Object Par exemple :

javascript{
    item:"",
    price:100,
    brand:{
        name: "micorsoft",
        country: "US"
    }
}

Cela peut résoudre le problème d'évolutivité et la vitesse de requête est également très rapide. Si les informations sur la marque du produit ne sont pas mises à jour très souvent, je le recommande. Bien que le degré de redondance des données soit augmenté, la vitesse des requêtes est améliorée. C'est un anti-paradigme.

Si les informations sur la marque sont mises à jour fréquemment, il est préférable d'utiliser ObjectId Bien que cela nécessite une requête supplémentaire, cela améliore la fiabilité.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal