sql >> Databasteknik >  >> NoSQL >> MongoDB

Förstå relationer och främmande nycklar i Mongoose

Jag är fortfarande ny på Node, Mongoose och Mongo, men jag tror att jag kan ta upp åtminstone en del av din fråga. :)

Din nuvarande metod är densamma som jag försökte göra först. I grund och botten slutar det med att det lagras väldigt likt detta (skrivet i JS, eftersom jag inte kan CoffeeScript):

var todoListSchema = new mongoose.Schema({
    name: String,
    todos: [{
        name: String,
        desc: String,
        dueOn: Date,
        completedOn: Date
    }]
});

Jag hittade senare den här metoden, vilket är vad jag letade efter, och jag tror vad du tänkte:

var todoListSchema = new mongoose.Schema({
    name: String,
    todos: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Todo' //Edit: I'd put the schema. Silly me.
    }]
});

Detta lagrar en array av ObjectIds, som du sedan kan ladda med Query#populate i Mongoose.

Jag känner inte till de tekniska implikationerna, men det är mer vettigt i min hjärna om jag håller dem åtskilda, så det är vad jag gör. :)

Edit:Här är några officiella dokument som kan vara användbara:http://mongoosejs.com/docs/ populate.html




  1. Vilket är det bästa MongoDB GUI? — Uppdatering 2019

  2. Vad är skillnaden mellan findOneAndUpdate och findOneAndReplace?

  3. Hur flyttar man ett objekt i en MongoDB-array?

  4. I Mongodb, hur kan jag bara indexera på fält i samling(er) i sekundär nod (replikuppsättning)