我有这样的事情:
var mongoose = require('mongoose');
mongoose.connect('mongodb://...');
var UserSchema = mongoose.Schema({
name: {
type: String,
unique: true
},
token: {
type: String,
unique: true,
sparse: true
}
});
var User = mongoose.model('User', UserSchema);
var peter = new User();
peter.name = 'peter';
peter.token = null;
peter.save(function(err) {
if (err) console.log(err);
console.log('done with peter');
var john = new User();
john.name = 'john';
john.token = null;
john.save(function(err) {
if (err) console.log(err);
console.log('done with john');
});
});
Run Code Online (Sandbox Code Playgroud)
因此peter首先和之后创建john.但是,john保存时会mongoose返回以下错误
{ [MongoError: E11000 duplicate key error index: node-login.users.$token_1 dup key: { : null }]
name: 'MongoError',
err: 'E11000 duplicate key error index: node-login.users.$token_1 dup key: { : null }',
code: 11000,
n: 0,
lastOp: 0,
connectionId: 4527333,
ok: 1 }
Run Code Online (Sandbox Code Playgroud)
代码尝试了mongolab运行mongo v2.0.7和mongoose v3.5.1.
我想设置一个索引来sparse允许多个null值.索引已正确设置为mongolab后端的"索引"选项卡显示true为unique和sparse.有什么想法我得到错误?
| 归档时间: |
|
| 查看次数: |
1725 次 |
| 最近记录: |