MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Effet de la génération de mongodb _id sur l'indexation

Une bien meilleure solution serait de laisser le _id colonne telle quelle et avoir un userId distinct et folderId champs dans votre document, ou créez un champ séparé avec les deux combinés.

Quant à savoir si ce sera "aussi rapide" ... dépend de votre requête, mais pour la commande par date de "création" du document par exemple, vous perdriez la possibilité de commander simplement par le _id vous perdriez également les avantages du sharding et distribution .

Toutefois, si vous souhaitez utiliser ces deux identifiants pour votre _id il y a une autre option ...

Vous pouvez en fait utiliser les deux mais laissez-les séparés ... par exemple ceci est un _id valide :

> var doc = { "_id" : { "userID" : 12345, "folderID" : 5152 }, 
              "field1" : "test", "field2" : "foo" };
> db.crazy.save(doc);
> db.crazy.findOne();
{
        "_id" : {
                "userID" : 12345,
                "folderID" : 5152
        },
        "field1" : "test",
        "field2" : "foo"
}
>