MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongodb - Construir DBRef com string ou ObjectId


A única diferença é que um é na verdade um ObjectId e o outro é uma representação de string do que parece ser um ObjectId .

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

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

No exemplo que você incluiu, o ObjectId formato pode resultar em um armazenamento mais eficiente, pois é um valor de 12 bytes em vez dos 24 bytes que a representação de string exigiria. Se você quiser usar DBRef s, eu usaria um ObjectId se a coleção referenciada estiver usando ObjectId s para o _id .

Você não é obrigado a usar um ObjectId em um DBRef . Pode ser qualquer valor que represente a chave (_id ) da coleção/DB relacionada.

Conforme a documentação sugere, a menos que você tenha uma razão convincente para usar um DBRef , use referências manuais.