sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb - Konstruer DBRef med streng eller ObjectId

Den eneste forskel er, at man faktisk er et ObjectId og den anden er en strengrepræsentation af, hvad der ser ud til at være et ObjectId .

DBRef som et objekt-id:

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

DBRef som en streng:

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

I eksemplet du inkluderede, ObjectId format kunne resultere i mere effektiv lagring, da det er en 12-byte værdi i stedet for de 24 bytes, som strengrepræsentationen ville kræve. Hvis du ville bruge DBRef s, ville jeg bruge et ObjectId hvis den refererede samling bruger ObjectId s for _id .

Du er ikke forpligtet til at bruge et ObjectId i en DBRef . Det kan være en hvilken som helst værdi, der repræsenterer nøglen (_id ) af den relaterede samling/DB.

Som dokumentationen foreslår, medmindre du har en tvingende grund til at bruge en DBRef , brug manuelle referencer i stedet.



  1. zmq vs redis for pub-sub-mønster

  2. Korrekt skjul databaselegitimationsoplysninger

  3. Mongoose befolker returnerende tom array

  4. MongoDB opdatering. Forsøger at indstille et felt fra en egenskab i en anden