MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara mereferensikan skema lain dalam skema Mongoose saya?

Anda dapat mendeskripsikannya dengan menggunakan Populasi

Populasi adalah proses secara otomatis mengganti jalur yang ditentukan dalam dokumen dengan dokumen dari koleksi lain. Kami dapat mengisi satu dokumen, beberapa dokumen, objek biasa, beberapa objek biasa, atau semua objek yang dikembalikan dari kueri.

Misalkan Skema Acara Anda didefinisikan sebagai berikut:

var mongoose = require('mongoose')
  , Schema = mongoose.Schema

var eventSchema = Schema({
    title     : String,
    location  : String,
    startDate : Date,
    endDate   : Date
});

var personSchema = Schema({
    firstname: String,
    lastname: String,
    email: String,
    gender: {type: String, enum: ["Male", "Female"]}
    dob: Date,
    city: String,
    interests: [interestsSchema],
    eventsAttended: [{ type: Schema.Types.ObjectId, ref: 'Event' }]
});

var Event  = mongoose.model('Event', eventSchema);
var Person = mongoose.model('Person', personSchema);

Untuk menunjukkan bagaimana populate digunakan, pertama buat objek person, aaron = new Person({firstname: 'Aaron'}) dan objek acara, event1 = new Event({title: 'Hackathon', location: 'foo'}) :

aaron.eventsAttended.push(event1);
aaron.save(callback); 

Kemudian, ketika Anda membuat kueri, Anda dapat mengisi referensi seperti ini:

Person
.findOne({ firstname: 'Aaron' })
.populate('eventsAttended') // only works if we pushed refs to person.eventsAttended
.exec(function(err, person) {
    if (err) return handleError(err);
    console.log(person);
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Performa agregasi pencarian yang buruk

  2. server mengembalikan kesalahan pada langkah otentikasi SASL:Otentikasi gagal

  3. Bagaimana cara menampilkan gambar base64 dalam reaksi?

  4. Bagaimana cara menghapus entri duplikat dari array?

  5. Cara menganalisis penggunaan disk dari wadah Docker