sql >> Databáze >  >> NoSQL >> MongoDB

Pochopení vztahů a cizích klíčů v Mongoose

V Node, Mongoose a Mongo jsem stále nový, ale myslím, že dokážu odpovědět alespoň na část vaší otázky. :)

Vaše současná metoda je stejná, jako jsem to zkoušel na začátku. V podstatě to skončí uložením velmi podobně jako toto (napsané v JS, protože CoffeeScript neznám):

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

Později jsem našel tuto metodu, což je to, co jsem hledal, a myslím, že to, co jste měli v úmyslu:

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

Toto uloží pole ObjectId, které pak můžete načíst pomocí Query#populate v Mongoose.

Nevím o technických důsledcích, ale v mém mozku dává větší smysl, když je nechám oddělené, takže to dělám. :)

Edit:Zde je několik oficiálních dokumentů, které by mohly být užitečné:http://mongoosejs.com/docs/ naplnit.html




  1. Najděte první prvek ve vnořeném poli, který odpovídá podmínkám

  2. MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Nelze najít kodek pro třídu io.github.ilkgunel.mongodb.Pojo

  3. Jak omezit počet podsloupců v MongoDB?

  4. mongodb aggregation project objectId with concat