sql >> Database teknologi >  >> NoSQL >> MongoDB

mongoose - ObjectId, der refererer til et underdokument

Ja det er muligt, men du har et par muligheder.

Mulighed 1:C som et underdokument

Hvis du virkelig vil bruge underdokumenter, behøver du ikke oprette en separat model. Du skal ændre din reference til 'c'-arrayet.

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); 

Mulighed 2:C som model

(Jeg præsenterer kun dette som et alternativ - da dit eksempel virker overflødigt, da du opretter 'C' som en separat model såvel som et underdokument)

Alternativt kan det være fornuftigt at have separate samlinger, du kan lave en mangustmodel til hver. Hver vil være en separat samling:

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

I dette tilfælde ønsker du måske at referere direkte til hver model:

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

Punkten

Ja, det er muligt, men du skal vælge, om du vil have C som model eller underdokument.



  1. Redis benchmarking for hget- og hset-kommandoer

  2. Flytning af HDFS-data til MongoDB

  3. Heroku Redis - GUI og hukommelsesoptimering

  4. Rengør brugerinput i Mongoose