2015-06-22 3 views
1

Objectiveсочетания нескольких колонок уникальной мангусты nodejs

Чтобы создать уникальность для двух столбцов

, что я пытался

Вот моя схема,

var mongoose = require('mongoose'); 

// location table Schema 

var locationSchema = new mongoose.Schema({ 

    locationId: { type: String, required: true }, 
    stockingLocationId: { type: String, required: true}, 
    parentStockingLocationId: { type: String }, 
    stockingLocationDescription: { type: String }, 
    created: { type: Date, default: Date.now }, 
    lastModified: { type: Date, default: Date.now }, 
    isActive: { type: Boolean , default : true }, 
    isDeleted: { type: Boolean , default : false } 

}); 

Две колонки: locationId и stockingLocationId.

Я попытался locationSchema.index({locationId:1, stockingLocationId:1}, { unique: true });

но не дела,

Любая помощь, пожалуйста?

+0

Не могли бы вы рассказать мне, почему отрицательный? –

+1

@ ramamoorthy-villi Код верный. Отбросьте базу данных и перезапустите сервер. Затем проверьте, работает ли он! – Vishnu

+0

@ Vishnu, спасибо, что работает после добавления индекса: true like locationId: {type: String, required: true, index: true}, stockingLocationId: {type: String, required: true, index: true} в схеме –

ответ

0

Думаю, вам нужно сделать раздельные вызовы для двух столбцов. Как вы это сделаете, комбинация из двух столбцов будет уникальной (комбинированный уникальный ключ).

locationSchema.index({locationId:1}, { unique: true }); 
locationSchema.index({stockingLocationId:1}, { unique: true }); 
+0

Можете ли вы, пожалуйста, поделиться с нами кодом –

+0

@ramamoorthy_villi no problem – Markus

+0

Мне нужна комбинация этих двух полей –

0

Вы должны забросьте дб после изменения указательных схем

2

Я знаю, что это немного поздно, но что-то вдоль этих линий ..

mySchema.index({field1: 1, field2: 1}, {unique: true}); 

, как указаны в here

Смежные вопросы