MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongodb - DBRef mit String oder ObjectId erstellen

Der einzige Unterschied besteht darin, dass es sich tatsächlich um eine ObjectId handelt und der andere ist eine Zeichenfolgendarstellung dessen, was wie eine ObjectId aussieht .

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 dem von Ihnen eingefügten Beispiel die ObjectId -Format könnte zu einer effizienteren Speicherung führen, da es sich um einen 12-Byte-Wert anstelle der 24 Bytes handelt, die die Zeichenfolgendarstellung erfordern würde. Wenn Sie DBRef verwenden möchten s würde ich eine ObjectId verwenden wenn die referenzierte Sammlung ObjectId verwendet s für die _id .

Sie müssen keine ObjectId verwenden in einem DBRef . Es kann ein beliebiger Wert sein, der den Schlüssel darstellt (_id ) der zugehörigen Sammlung/DB.

Als Dokumentation schlägt vor, es sei denn, Sie haben einen zwingenden Grund für die Verwendung eines DBRef , verwenden Sie stattdessen manuelle Referenzen.