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

mongodb - Construire DBRef avec une chaîne ou un ObjectId

La seule différence est qu'il s'agit en fait d'un ObjectId et l'autre est une représentation sous forme de chaîne de ce qui semble être un ObjectId .

DBRef en tant qu'ObjectId :

db.persons.insert({name: 'cavin', 
     sister: new DBRef('persons', 
         new ObjectId('5165419064fada69cef33ea2'))}) // use an ObjectId

DBRef sous forme de chaîne :

db.persons.insert({name: 'bob', 
     sister: new DBRef('persons', 
        '5165419064fada69cef33ea2')}) // use a string

Dans l'exemple que vous avez inclus, le ObjectId format pourrait entraîner un stockage plus efficace car il s'agit d'une valeur de 12 octets au lieu des 24 octets requis par la représentation sous forme de chaîne. Si vous vouliez utiliser DBRef s, j'utiliserais un ObjectId si la collection référencée utilise ObjectId s pour le _id .

Vous n'êtes pas obligé d'utiliser un ObjectId dans un DBRef . Il peut s'agir de n'importe quelle valeur représentant la clé (_id ) de la collection/DB associée.

Comme la documentation suggère, sauf si vous avez une raison impérieuse d'utiliser un DBRef , utilisez plutôt des références manuelles.