Je suis en train de « développer une API RESTful utilisant Node.js Avec Express et Mongoose » exemple et je suis tombé sur un problème avec le schéma MongoDB:MongoDB: supprimer la contrainte d'unicité
POST:
{ title: 'My Awesome T-shirt 2',
description: 'All about the details. Of course it\'s black.',
style: '12345' }
{ [MongoError: E11000 duplicate key error index: ecomm_database.products.$style_1 dup key: { : "12345" }]
name: 'MongoError',
err: 'E11000 duplicate key error index: ecomm_database.products.$style_1 dup key: { : "12345" }',
il est unique contrainte dans la définition de schéma:
var Product = new Schema({
title: { type: String, required: true },
description: { type: String, required: true },
style: { type: String, unique: true },
modified: { type: Date, default: Date.now } });
Comment puis-je me débarrasser de cela? Lorsque je supprime unique: true et redémarre l'application, le schéma n'est pas mis à jour.
Comment mongodb gère-t-il les «alters» au schéma?
Cela a fonctionné. Pour la référence: > utilisez ecomm_database > db.products.dropIndexes(); { \t "nIndexesWas": 2, \t "msg": "index non-_id a chuté pour la collecte", \t "ok": 1} –
"MongoDB est * schéma moins *" ... pourquoi, alors, y a-t-il une section entière dans leur documentation sur la conception de schémas? http://www.mongodb.org/display/DOCS/Schema+Design –
@ZaidMasud: une description de processus avec moins de connotations que la "conception de schéma" pourrait être "modélisation de données" :). Les données doivent prendre une forme nominale (c'est-à-dire que vous devez toujours prendre en compte la * conception de schéma * pour planifier vos données, requêtes et index) mais aucun * schéma * strict n'est appliqué au niveau d'un document ou d'une collection. C'est un contraste distinct de l'approche SQL d'un [schéma fixe] (http://en.wikipedia.org/wiki/Information_schema) par table, où chaque champ a un type et une taille spécifiques. – Stennie