我正在尝试使用 mongoose 创建复合索引:
var ProjectSchema = new mongoose.Schema({
name: {type: String, required: true},
user: {type: mongoose.Schema.ObjectId, ref: 'User', required: true}
});
ProjectSchema.index({user: 1, name: 1}, {unique: true});
之后,我将旧数据库删除到 mongo
db.dropDatabase()
但我仍然可以插入具有相同名称和用户 ID 的多个文档。为什么?
它创建的索引在 mongo
中显示为
> db.projects.getIndexes();
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "mydatabase.projects",
"name" : "_id_"
}
]
最佳答案
这是纯 mongo 控制台功能,它可以工作, 点击Here 了解更多详情。这在 mongoose 的 API 中没有描述。 我认为这可能是可行的。
db.collection.ensureIndex( { a: 1 }, { unique: true, dropDups: true } )
关于javascript - 复合索引不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22368814/