2017-09-19 4 views
0

J'ai un cluster de base de données partitionné configuré et prêt à fonctionner.Utilisation de la propriété d'objet en tant que composant de clé de partitionnement

Je suis à l'étape de choisir la clé de partition, et j'aimerais utiliser plusieurs champs dont ceux imbriqués.

Par exemple, je stock documents de cette forme:

{ 
    id: 0, 
    author: { 
     id: 0, 
     followers: 0 
    } 
} 

Et je voudrais utiliser l'identifiant et les champs de author.id pour composer ma clé de tesson.

J'ai essayé avec ces deux syntaxes:

sh.shardCollection("test.sample", { "id" : 1, "author" : { "id" : 1 } }) 
sh.shardCollection("test.sample", { "id" : 1, "author.id" : 1 }) 

Mais aucun fonctionne réellement.

Est-il possible d'utiliser un champ imbriqué en tant que composant d'une clé de partition? Si oui, comment pourrais-je accomplir cela?

Répondre

0

J'ai résolu mon problème.

En fait, la bonne syntaxe est (comme pour créer un index):

sh.shardCollection("test.sample", { "id" : 1, "author.id" : 1 }) 

Mon problème est venu à partir des données que j'ai essayé d'insérer dans la base de données.