J'ai créé une boucle pour ajouter des produits (avec des données) à différentes régions. Pour commencer, je veux ajouter tous les produits à toutes les régions. Je vais ensuite (dans une opération différente) retirer des produits de ces régions.Dupliquer des objets après avoir créé un objet dans l'objet dans Mongoose (MongoDB, Node.JS, express)
La prémisse du site est que les objets pourront être réservés par un utilisateur dans une région, ce qui rendra cet objet indisponible dans cette région mais toujours disponible dans d'autres régions. Je sauvegarde la région des utilisateurs lors de mon inscription et je leur permets seulement de voir les objets disponibles dans leur région.
J'ai créé des objets appelés Régions et j'ajoute chaque produit à un tableau dans les régions. La raison pour laquelle je les stocke dans les régions est que dans l'avenir je m'attends à des centaines de produits différents et je crois que le simple retour de tous les éléments dans un tableau régional sera beaucoup plus facile sur le serveur que la vérification individuelle de chaque produit.
Mon problème est que
lors de l'exécution de mon code, je reçois des copies de chaque objet dans ma page.
Le code J'utilise est:
dummyregions.forEach(function(seed){
Region.create(seed, function(err, region){
if(err){
console.log(err);
} else {
dummyproducts.forEach(function(seedprod){
Product.create(seedprod, function(err, product){
if(err){
console.log(err);
} else {
region.products.push(product);
region.save();
}
});
});
}
})
});
dummyRegions est un objet, contenant un nom "string" et un tableau = []
dummyproducts contient un nom "string", catégorie « string "et une URL de l'image miniature « string »
J'ai seulement 4 articles de test dans les produits factices et 3 régions, mais cela est le résultat que je reçois: Duplicate Items on each Region
Toute aide serait grandement appréciée!
Êtes-vous sûr que ce ne sont pas dans la base de données déjà ? – Paul
J'efface les deux collections (région et produits) de la base de données avant d'exécuter le script ci-dessus. J'ai vérifié deux fois pour m'assurer qu'ils ne sont pas présents avant le script. Les doublons sont créés avec le code ci-dessus. – Corey01