Sto imparando qualche nodo e sto cercando di usare mangusta. Attualmente, il mio obiettivo è imparare a usare populate.Come dovrei usare correttamente popola con mangusta?
ho una definizione projects
e milestone
richiedono:
projectSchema = new mongoose.Schema({
id: String,
title: String,
description: String,
owner: String,
site: String,
creation_date: Date,
milestone_ids: Array,
milestones: [{
type: mongoose.Schema.Types.ObjectId,
ref: "Milestone"
}]
})
Project = mongoose.model("Project", projectSchema)
milestones = require(__dirname + "/milestones.js")();
poi faccio questo ad un certo punto della projects.js
:
Project.find(query, {}, {sort: {_id: -1}},
function (error, results) {
callback(results);
}
).populate("milestones");
Come si popolano le tappe?
Ecco i dati project
da mongo:
{
"title": "sitename",
"description": "online thing",
"creation_date": {
"$date": "2013-07-11T19:45:42.139Z"
},
"_id": {
"$oid": "51df0b66dbdd7c4f14000001"
},
"milestones": [],
"milestone_ids": [],
"__v": 0
}
E questo è il milestone
che è sostanzialmente connesso al progetto:
{
"title": "Proof of concept",
"description": "Make it work.",
"due_date": {
"$date": "2013-07-11T19:46:38.535Z"
},
"project_id": "51df0b66dbdd7c4f14000001",
"_id": {
"$oid": "51df0b9edbdd7c4f14000002"
},
"__v": 0
}
Inoltre, questo è lo schema traguardo :
milestoneschema = new mongoose.Schema({
id: String,
title: String,
description: String,
owner: String,
site: String,
due_date: Date,
project_id: {
type: String,
ref: "Project"
}
})
Milestone = mongoose.model("Milestone", milestoneschema);
Ok, tutte le cose che hai scritto perfettamente senso. La cosa brutta è che le pietre miliari non sono ancora popolate. Ho un array vuoto esattamente come prima. –
Controlla bene i tuoi dati? –
Anche se pubblichi più codice, possiamo cercare errori di battitura semplici e quant'altro. Il diavolo è nei dettagli qui come fili di mangusta tutto questo insieme basato su nomi di stringa con cose confondenti come l'auto-pluralizzazione. Una cosa in minuscolo o singolare in modo errato e si ottiene un comportamento errato e senza errori. Tuttavia, dal tuo frammento tutto sembra a prima vista. –