2013-02-28 9 views
1

Supposons que la structure de données suivante dans MongoDB:MongoDB - index une liste interne des objets

{ 
    "_id" : "Bob Blocker", 
    "ratings" : { 
     "771206753" : 1 
    }, 
    "prevalence" : 1 
} 

Comment pourrait-on indexer les clés de la structure interne de ratings en utilisant ensureIndex()? Je voudrais construire un index qui associe le document _id avec toutes les clés (dans cet exemple, "771206753") dans l'objet d'évaluation.

La saisie de l'index avec ratings suffirait-elle? Cela ne devrait-il pas également enregistrer la partie valeur de l'objet d'évaluation? Dois-je déplacer mon schéma si la recherche est prévue par cette clé particulière?

Répondre

2

Vous ne pouvez pas indexer les clés dynamiques et l'indexation ratings indexerait l'objet entier sous la forme d'un blob, ce que vous ne voulez pas non plus faire.

Il peut fonctionner mieux retravailler votre schéma à:

{ 
    "_id" : "Bob Blocker", 
    "ratings" : [ 
     {id: "771206753", value: 1} 
    ], 
    "prevalence" : 1 
} 

puis index 'ratings.id'.