sql >> Base de Datos >  >> NoSQL >> MongoDB

mongodb - Construir DBRef con cadena u ObjectId

La única diferencia es que uno es en realidad un ObjectId y el otro es una representación de cadena de lo que parece ser un ObjectId .

DBRef como ID de objeto:

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

DBRef como una cadena:

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

En el ejemplo que incluiste, el ObjectId El formato podría dar como resultado un almacenamiento más eficiente, ya que es un valor de 12 bytes en lugar de los 24 bytes que requeriría la representación de cadena. Si desea utilizar DBRef s, usaría un ObjectId si la colección a la que se hace referencia usa ObjectId s para el _id .

No es necesario que utilice un ObjectId en un DBRef . Puede ser cualquier valor que represente la clave (_id ) de la colección/DB relacionada.

Como la documentación sugiere, a menos que tenga una razón convincente para usar un DBRef , use referencias manuales en su lugar.