Tôi muốn làm cho dự án chính duy nhất trên bộ sưu tập đó nhưng tôi không thể làm việc này, tôi đã tìm thấy sự cố tương tự ở đây.Mongoose trùng lặp với khóa lược đồ duy nhất
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();
Khi tôi chạy ứng dụng với test.js nút, vẫn tạo ra bản sao.
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") }
// Sửa vẫn cùng một vấn đề, đây là những gì tôi đã cố gắng để làm xóa db.tasks.drop() bộ sưu tập restart Mongo sudo dừng MongoDB và bắt đầu MongoDB, chạy lại chương trình và vẫn cùng một vấn đề, làm thế nào nó cho phép dữ liệu trùng lặp trên chỉ mục?
dropDups là từ mongodb-native – jackdbernier
dropDups không được chấp nhận từ phiên bản 2.6 https://docs.mongodb.com/v2.6/tutorial/create-a-unique-index/#drop-duplicates –