Plusieurs-à-plusieurs avec cartographie de la Mangouste

J'ai FlashcardSchemas et PackageSchemas dans mon design. Une carte mémoire peut appartenir à différents packages et un package peut contenir différentes cartes mémoire.

Ci-dessous vous pouvez voir une version allégée de mon mangouste définitions de schéma:

//package-schema.js
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var PackageSchema = new Schema({
    id          : ObjectId,
    title       : { type: String, required: true },
    flashcards  : [ FlashcardSchema ]
});

var exports = module.exports = mongoose.model('Package', PackageSchema);

//flashcard-schema.js
var Schema = mongoose.Schema,
    ObjectId = Schema.ObjectId;

var FlashcardSchema = new Schema({
    id      : ObjectId,
    type        : { type: String, default: '' },
    story       : { type: String, default: '' },
    packages    : [ PackageSchema ]
});

var exports = module.exports = mongoose.model('Flashcard', FlashcardSchema);

Comme vous pouvez le voir dans les commentaires ci-dessus, ces deux définitions de schéma appartiennent à des fichiers séparés et font référence les uns aux autres.

J'obtiens une exception indiquant que PackageSchema n'est pas défini, comme prévu. Comment puis-je carte un plusieurs-à-plusieurs relation avec mangouste?

  • Il n'y a pas de façon simple de le faire - pourquoi êtes-vous en avoir des paquets de la partie de la carte mémoire de schéma, et flashcards partie de l'ensemble du schéma? quelles sont les requêtes vous attendez-vous courir?
  • Quand je tire un paquet de la db, je veux remplir les cartes de tableau et quand je tire une carte de la db, je veux voir les paquets que la carte appartient. Si il n'y a pas de moyen simple pour ce faire, dois-je utiliser un troisième schéma de fonction pour stocker ces relations?
  • Il y a une plus récente et complète réponse ici: stackoverflow.com/a/46020968/438970
InformationsquelleAutor | 2012-06-20