Quiero hacer que el proyecto clave sea único en toda esa colección, pero no puedo conseguir que esto funcione, encontré un problema similar aquí.Mongoose se duplica con la clave de esquema única
task.js
function make(Schema, mongoose) {
var Tasks = new Schema({
project: { type: String, index: { unique: true, dropDups: true }},
description: String
});
mongoose.model('Task', Tasks);
}
module.exports.make = make;
Test.js
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/rss');
var Schema = mongoose.Schema
, ObjectId = Schema.ObjectId;
require('./task.js').make(Schema, mongoose);
var Task = mongoose.model('Task');
var newTask = new Task({
project: 'Starting new project'
, description: 'New project in node'
});
newTask.save(function(err) {
if (err) console.log('Error on saving');
});
mongoose.disconnect();
cuando corro la aplicación con Test.js nodo, sigue creando duplicados.
MongoDB shell version: 2.0.2
connecting to: rss
> db.tasks.find()
> db.tasks.find()
{ "project" : "Starting new project", "description" : "New project in node", "_id" : ObjectId("4f21aaa3d48d4e1533000001") }
{ "project" : "Starting new project", "description" : "New project in node", "_id" : ObjectId("4f21aaa4d9a8921a33000001") }
{ "project" : "Starting new project", "description" : "New project in node", "_id" : ObjectId("4f21aaa57ebeea1f33000001") }
// Editar todavía mismo problema, esto es lo que traté de hacer eliminar la colección db.tasks.drop() reinicio parada mongo sudo mongodb y empezar mongodb, corriendo el programa de nuevo y todavía mismo problema, ¿cómo permite datos duplicados en el índice?
dropDups es de mongodb-native – jackdbernier
dropDups está en desuso desde la versión 2.6 https://docs.mongodb.com/v2.6/tutorial/create-a-unique-index/#drop-duplicates –