sql >> Database >  >> NoSQL >> MongoDB

mongodb - Construeer DBref met string of ObjectId

Het enige verschil is dat men eigenlijk een ObjectId . is en de andere is een tekenreeksrepresentatie van wat lijkt op een ObjectId .

DBref als ObjectId:

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

DBref als string:

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

In het voorbeeld dat u hebt opgenomen, is de ObjectId formaat kan resulteren in efficiëntere opslag omdat het een waarde van 12 bytes is in plaats van de 24 bytes die de tekenreeksrepresentatie zou vereisen. Als u DBRef . wilt gebruiken s, zou ik een ObjectId . gebruiken als de verzameling waarnaar wordt verwezen, ObjectId gebruikt s voor de _id .

U bent niet verplicht om een ​​ObjectId . te gebruiken in een DBRef . Het kan elke waarde zijn die de sleutel vertegenwoordigt (_id ) van de gerelateerde collectie/DB.

Zoals de documentatie suggereert, tenzij je een dwingende reden hebt voor het gebruik van een DBRef , gebruik in plaats daarvan handmatige verwijzingen.



  1. Garandeert MongoDB-journaling duurzaamheid?

  2. Ingesloten document in een geneste reeks documenten verwijderen

  3. Zoeken en wijzigen met MongoDB C#

  4. Kan geen verbinding maken met lokale mongoDB vanuit java