MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

mongoose - ObjectId, който препраща към поддокумент

Да, възможно е, но имате няколко възможности.

Опция 1:C като поддокумент

Ако наистина искате да използвате поддокументи, не е необходимо да създавате отделен модел. Трябва да промените препратката си към масива '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); 

Вариант 2:C като модел

(Представям това само като алтернатива - тъй като вашият пример изглежда излишен, тъй като създавате „C“ като отделен модел, както и като поддокумент)

Като алтернатива може да има смисъл да имате отделни колекции, можете да създадете мангуст модел за всяка. Всяка ще бъде отделна колекция:

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

В този случай може да искате да посочите директно всеки модел:

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

Точката

Да, възможно е, но трябва да изберете дали искате C като модел или поддокумент.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Как да дефинирам множество типове данни за поле в Mongoose?

  2. Как да получите стойността на броя с помощта на $lookup в mongodb с помощта на golang?

  3. Има ли сравнение на NoSQL решения (кое е по-добро в определени ситуации?)

  4. Намерете последния запис за всеки ден

  5. MongoDB $dayOfWeek