Ich versuche, das „Entwickeln Sie eine RESTful API Node.js Mit Express und Mongoose Mit“ Beispiel und ich lief in ein Problem mit dem MongoDB Schema:MongoDB: entfernen eindeutige Einschränkung
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" }',
ein einzigartiges contraint in der Schema-Definition:
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 } });
wie bekomme ich das los? Wenn ich unique: true entferne und die App neu starte, wird das Schema nicht aktualisiert.
Wie behandelt Mongodb "Änderungen" an das Schema?
Das hat funktioniert. Für die Referenz: > verwenden Sie ecomm_database > db.products.dropIndexes(); { \t "nIndexesWas": 2, \t "msg": "Nicht-_id Indizes fiel für die Sammlung", \t "ok": 1 } –
"MongoDB ist * Schema-less *" ... warum, Gibt es dann einen ganzen Abschnitt in ihrer Dokumentation zum Schemadesign? http://www.mongodb.org/display/DOCS/Schema+Design –
@ZaidMasud: eine Prozessbeschreibung mit weniger Konnotationen als "Schema-Design" könnte "Datenmodellierung" sein :). Die Daten müssen eine gewisse nominale Form annehmen (d. H. Sie müssen immer noch * Schemadesign * in Betracht ziehen, um Ihre Daten, Abfragen und Indizes zu planen). Es gibt jedoch kein starres * Schema * auf Dokument- oder Sammlungsebene. Dies ist ein deutlicher Kontrast zum SQL-Ansatz eines [festen Schemas] (http://en.wikipedia.org/wiki/Information_schema) pro Tabelle, wobei jedes Feld einen bestimmten Typ und eine bestimmte Größe aufweist. – Stennie