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

Hvordan henvises til et andet skema i mit Mongoose-skema?

Du kan beskrive det ved at bruge Befolkning

Population er processen med automatisk at erstatte de specificerede stier i dokumentet med dokument(er) fra andre samling(er). Vi kan udfylde et enkelt dokument, flere dokumenter, almindeligt objekt, flere almindelige objekter eller alle objekter, der returneres fra en forespørgsel.

Antag, at dit hændelsesskema er defineret som følger:

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

For at vise, hvordan populate bruges, skal du først oprette et personobjekt, aaron = new Person({firstname: 'Aaron'}) og et begivenhedsobjekt, event1 = new Event({title: 'Hackathon', location: 'foo'}) :

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

Derefter, når du foretager din forespørgsel, kan du udfylde referencer som denne:

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. I Flask konverter form POST-objekt til en repræsentation, der er egnet til mongodb

  2. Fejl under kørsel af Lua-script fra Redis-klient

  3. MongoDB GPG - Ugyldige signaturer

  4. Få Set-værdi fra Redis ved hjælp af RedisTemplate