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

mangusta — ObjectId, który odwołuje się do dokumentu podrzędnego

Tak, jest to możliwe, ale masz kilka opcji.

Opcja 1:C jako dokument podrzędny

Jeśli naprawdę chcesz korzystać z poddokumentów, nie musisz tworzyć osobnego modelu. Musisz zmienić swoje odniesienie do tablicy „c”.

var C = new Schema({...});  
var B = new Schema({c: [C]});  
var A = new Schema({c: { type: ObjectId, ref: 'ModelB.c' });  

var Model_A = mongoose.model('ModelA', A);  
var Model_B = mongoose.model('ModelB', B); 

Opcja 2:C jako model

(Przedstawiam to tylko jako alternatywę - ponieważ twój przykład wydaje się zbędny, ponieważ tworzysz „C” jako osobny model, a także jako poddokument)

Alternatywnie, sensowne może być posiadanie oddzielnych kolekcji, możesz stworzyć model mangusty dla każdej z nich. Każdy będzie osobną kolekcją:

var Model_A = mongoose.model('ModelA', A);  
var Model_B = mongoose.model('ModelB', B);  
var Model_C = mongoose.model('ModelC', C);

W takim przypadku możesz chcieć odnieść się bezpośrednio do każdego modelu:

var C = new Schema({...});  
var B = new Schema({c: { type: ObjectId, ref: 'ModelC' }});  
var A = new Schema({c: { type: ObjectId, ref: 'ModelC' }); 

Punkt

Tak, to możliwe, ale musisz wybrać, czy chcesz C jako model lub poddokument.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wdrażanie aplikacji Meteor na własnym serwerze

  2. Jak uruchomić db.killOp() przy użyciu natywnego sterownika MongoDB Node.js?

  3. Arytmetyka NumberLong w powłoce Mongo

  4. MongoDB:Sprawdź, czy wartość jest null lub tablica jest pusta

  5. Odwróć pole tablicy w MongoDB