我试图让MongoDB根据其索引检测重复值.我认为这在MongoDB中是可能的,但是通过Mongoose包装器似乎已经破坏了.对于这样的事情:
User = new Schema ({
email: {type: String, index: {unique: true, dropDups: true}}
})
Run Code Online (Sandbox Code Playgroud)
我可以使用相同的电子邮件保存2个用户.该死.
这里也表达了同样的问题:https://github.com/LearnBoost/mongoose/issues/56,但那个线程已经老了,无处可去.
现在,我手动调用数据库来查找用户.由于"电子邮件"已编入索引,因此该电话费用并不昂贵.但让它本地处理仍然是件好事.
有人有解决方案吗?
尝试创建MongoDB索引.使用Mongoose ODM并在我下面的模式定义中,我将username字段设置为唯一索引.所有集合和文档都被正确创建,它只是不起作用的索引.所有文档都说应该在启动时运行ensureIndex命令来创建任何索引,但是没有任何索引.如果重要的话,我正在使用MongoLab进行托管.我也多次放弃收藏.怎么了.
var schemaUser = new mongoose.Schema({
username: {type: String, index: { unique: true }, required: true},
hash: String,
created: {type: Date, default: Date.now}
}, { collection:'Users' });
var User = mongoose.model('Users', schemaUser);
var newUser = new Users({username:'wintzer'})
newUser.save(function(err) {
if (err) console.log(err);
});
Run Code Online (Sandbox Code Playgroud)