Wie immer ‚es hängt‘
auf Ihren Anfragen Abhängig -
Wenn Sie in erster Linie auf Book
zu gehen suchen würde ich vorschlagen, eine Sammlung von Büchern, die, mit einem eingebetteten Verlag.
Unter der Annahme, ein Schema wie
Buch
{
_id: ObjectId('507f191e810c19729de860ea'),
title: 'A great book',
publisher: {
_id: ObjectId('958d191e810c19629dl860io'),
name: 'A great publisher'
}
}
Schnell dies wie Abfrage könnte:
db.books.find({publisher._id: ObjectId("958d191e810c19629dl860io")});
, die von diesem Verlag alle Bücher zurückkehren wird.
Das Problem, das ich sehe, ist, wie viel Sie über den Verleger der Person, die eine book
Anzeige "präsentieren" möchte. Könnten sich diese Daten ändern? Der Verlag könnte seinen Namen ändern? Dann musst du jedes Buch durchgehen und es auf den neuesten Stand bringen ... Oder würdest du es am liebsten als 'point in time fact' speichern - dh dieses Buch wurde von einem Verleger mit xyz-Namen veröffentlicht, deshalb haben wir es nicht ' t aktualisiere es.
Wenn Sie primäre Abfrage sind jedoch eine Liste der Verlage ist, und ihre Bücher, ich würde die oben umkehren:
Publishers
{
_id: ObjectId('958d191e810c19629dl860io'),
title: 'A great publisher',
books: [{
_id: ObjectId('507f191e810c19729de860ea'),
name: 'A great book'
}]
}
Nein Ich frage nicht, ob ich einbetten sollte oder Referenz, bitte lesen Sie meine Frage genauer. – mskw
Wieder nach der Bearbeitung geöffnet, denke aber immer noch, es ist zu breit – chridam