Staram się "Opracowanie REST API Korzystanie node.js Z Express i Mongoose" przykład i wpadłem na problem z MongoDB schematu:MongoDB: usunąć UNIQUE
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" }',
istnieje unikalna ograniczenie w definicji schematu:
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 } });
Jak mogę się tego pozbyć? Po usunięciu unique: true i zrestartowaniu aplikacji schemat nie zostanie zaktualizowany.
W jaki sposób mongodb obsługuje "zmienia" schemat?
To działało. Dla odniesienia: > użyj ecomm_database > db.products.dropIndexes(); { \t "nIndexesWas": 2, \t "msg": "non-_id indeksy spadły do odbioru", \t "ok": 1 } –
"MongoDB jest mniej schematu * *" ... dlaczego, to czy istnieje cała sekcja w ich dokumentacji dotyczącej projektowania schematów? http://www.mongodb.org/display/DOCS/Schema+Design –
@ZaidMasud: opis procesu o mniejszej liczbie konotacji niż "projekt schematu" może być "modelowaniem danych" :). Dane muszą przybrać pewien kształt nominalny (tzn. Nadal trzeba wziąć pod uwagę * projekt schematu * do planowania danych, zapytań i indeksów), ale nie ma sztywnego * schematu * egzekwowanego na poziomie dokumentu lub kolekcji. Jest to wyraźny kontrast w stosunku do podejścia SQL schematu [fixed schema] (http://en.wikipedia.org/wiki/Information_schema) na tabelę, gdzie każde pole ma określony typ i rozmiar. – Stennie