ben "node.js ile Express ve Mongoose kullanma dinlendirici bir API geliştirin" örneği çalışıyorum ve MongoDB Şeması ile bir sorunla karşılaştık: benzersiz olduğunuMongoDB: kaldırmak benzersiz kısıtlama
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" }',
şema tanımındaki kontrendikasyon:
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 } });
Bundan nasıl kurtulurum? Benzersiz olanı kaldırdığımda: true ve uygulamayı yeniden başlattığınızda şema güncellenmez.
Mandodb şemaya nasıl "geçiş yapar"?
Bu işe yaradı. Referans için: > ecomm_database kullanın > db.products.dropIndexes(); , –
"MongoDB olduğunu * şema daha az *" ... neden { \t "nIndexesWas": 2, \t "ileti": 1 : \t "Tamam", "non-_ID endeksleri koleksiyonu için düştü"} o zaman, şema tasarımıyla ilgili belgelerinde bir bölüm var mı? http://www.mongodb.org/display/DOCS/Schema+Design –
@ZaidMasud: "şema tasarımı" ndan daha az çağrışım içeren bir süreç tanımı "veri modelleme" olabilir :). Verilerin bazı nominal şekil alması gerekir (yani, verilerinizi, sorgularınızı ve dizinlerinizi planlamak için * şema tasarımını * düşünmeniz gerekir). Ancak belge veya koleksiyon düzeyinde zorlu * şema * yoktur. Bu, her alanın belirli bir tür ve boyuta sahip olduğu [sabit şema] (http://en.wikipedia.org/wiki/Information_schema) tablosunun SQL yaklaşımından farklı bir kontrasttır. – Stennie