MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

mongodb - Skonstruuj DBRef za pomocą łańcucha lub ObjectId

Jedyna różnica polega na tym, że w rzeczywistości jest to ObjectId a drugi to ciąg znaków reprezentujący coś, co wygląda na ObjectId .

DBRef jako identyfikator obiektu:

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

DBRef jako ciąg:

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

W podanym przykładzie ObjectId format może skutkować bardziej wydajnym przechowywaniem, ponieważ jest to wartość 12-bajtowa zamiast 24 bajtów, których wymagałaby reprezentacja ciągu. Jeśli chcesz użyć DBRef s, użyłbym ObjectId jeśli kolekcja, do której się odwołuje, używa ObjectId s dla _id .

Nie musisz używać ObjectId w DBRef . Może to być dowolna wartość reprezentująca klucz (_id ) powiązanej kolekcji/bazy danych.

Jako dokumentacja sugeruje, chyba że masz przekonujący powód, aby użyć DBRef , zamiast tego użyj odnośników ręcznych.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. DoctrineMongoDBBundle otrzymuje krytyczny błąd w Symfony2

  2. Mongoose:Używanie addToSet z ObjectIds Wyniki w Orphan Id

  3. Mongo $regex z nawiasem i granicą słowa

  4. Zapisywanie właściwości tablicy w schemacie Mongoose

  5. Metody agregacji mongoidów na osadzonych dokumentach?