sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb - Konstruera DBRef med sträng eller ObjectId

Den enda skillnaden är att man faktiskt är ett ObjectId och den andra är en strängrepresentation av vad som ser ut att vara ett ObjectId .

DBRef som ObjectId:

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

DBRef som en sträng:

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

I exemplet du inkluderade, ObjectId format kan resultera i effektivare lagring eftersom det är ett 12-byte-värde istället för de 24 byte som strängrepresentationen skulle kräva. Om du ville använda DBRef s, jag skulle använda ett ObjectId om den refererade samlingen använder ObjectId s för _id .

Du behöver inte använda ett ObjectId i en DBRef . Det kan vara vilket värde som helst som representerar nyckeln (_id ) av den relaterade samlingen/DB.

Som dokumentationen föreslår, om du inte har en övertygande anledning till att använda en DBRef , använd manuella referenser istället.



  1. NodeJS/ExpressJS skicka svar av stora mängder data i en ström

  2. Diskkvoten har överskridits på OpenShift

  3. Kan MongoDB lagra och manipulera strängar av UTF-8 med kodpunkter utanför det grundläggande flerspråkiga planet?

  4. MongoRepository JSON-datumfråga (vår)