多列独特的猫鼬nodejs的组合

时间:2015-06-22 12:04:20

标签: node.js mongodb mongoose

目的

为两列创建唯一性

我尝试的内容

这是我的架构,

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 }

});

两列是locationIdstockingLocationId

我尝试了locationSchema.index({locationId:1, stockingLocationId:1}, { unique: true });

但不起作用,

请帮忙吗?

5 个答案:

答案 0 :(得分:2)

我知道它有点晚了,但是沿着这些方向......

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

here

中指定

答案 1 :(得分:1)

在对下面的字段添加单引号之后,它对我有用

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

答案 2 :(得分:0)

我认为你必须对这两列进行单独的调用。你这样做的方式,两列的组合将是唯一的(组合唯一键)。

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

答案 3 :(得分:0)

更改索引架构后需要删除数据库

答案 4 :(得分:0)

您可以在架构本身中进行如下设置:

 locationId: { type: String, required: true, unique:true, index:true },
 stockingLocationId: { type: String, required: true, unique:true, index:true},