Przede wszystkim istnieje olbrzymia różnica między relacjami w MongoDB i danymi w bazach danych SQL (musisz mieć jasność co do tego od samego początku).
Relacje w MongoDB to tylko reprezentacje powiązanych danych. Nie ma mechanizmu, który zachowałby integralność tych relacji.
To, co robi mangusta z refingami, to skorzystanie z pola z opcją ref
w celu przeszukania pola _id
dokumentów w zbiorze odniesienia. Ta funkcja jest używana do operacji takich jak populate
(która wewnętrznie wywołuje zapytania w kolekcji docelowej i zastępuje odwołane pole dokumentami).
W ten sposób można zapisać jeden lub wiele identyfikatorów dla przywoływanej kolekcji w polu, tworząc w ten sposób "relacje" jeden do jednego lub jeden do wielu.
Tak, aby zapisać pojedynczy identyfikator dla wskazanej kolekcji, składnia będzie:
client: {type: Mongoose.Schema.Types.ObjectId, ref: 'Client'} //No arrays, as we want to store a single ID only.
W ten sam sposób można przechowywać wiele identyfikatorów dla wskazanej kolekcji tak:
friends: [{type: Mongoose.Schema.Types.ObjectId, ref: 'User'}] //The array stores multiple IDs, creating a one-to-many "relationship"
EDYTOWANIE:
Upewnij się, że na początku masz moduł Mongoose require
.
var Mongoose = require('mongoose');
Po prostu nie używaj tablicy. – qqilihq
Dzięki, ale to naprawdę nie pomaga - jestem nowy w używaniu węzła i mangusty, więc składnia jest mi obca. – Slippy