sql >> Databáze >  >> NoSQL >> MongoDB

mongodb - Vytvořte DBRef pomocí řetězce nebo ObjectId

Jediný rozdíl je v tom, že jeden je ve skutečnosti ObjectId a druhá je řetězcová reprezentace toho, co vypadá jako ObjectId .

DBRef jako ObjectId:

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

DBRef jako řetězec:

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

V příkladu, který jste zahrnuli, ObjectId formát by mohl vést k efektivnějšímu ukládání, protože se jedná o 12bajtovou hodnotu namísto 24 bajtů, které by vyžadovala řetězcová reprezentace. Pokud jste chtěli použít DBRef s, použil bych ObjectId pokud odkazovaná kolekce používá ObjectId s pro _id .

Nemusíte používat ObjectId v DBRef . Může to být jakákoli hodnota, která představuje klíč (_id ) související sbírky/DB.

Jako dokumentaci navrhuje, pokud nemáte pádný důvod pro použití DBRef , použijte ruční odkazy.



  1. Spring Data MongoDB - $eq v rámci podpory $project

  2. Jak mongodump z OpenShift a mongorestore lokálně na MongoDB 2.4.9?

  3. MongoDB Datový adresář /data/db nebyl nalezen

  4. Vazba dynamické odpovědi serveru (vnořený soubor json)