我正在尝试在我的子文档User中为属性userID
设置唯一索引,并在我的类架构中用作数组。索引应该是针对每个类而不是所有类的全局索引。
因此,A类应该能够拥有用户ID [1,2,3,4]和B类[2,3,4,7,9]。 不应该被允许的是:A类[1,2,2,3] 以下查询给出了一个例外:
E11000重复键错误集合:app.classes索引: _users.userID_1 dup key:{:1.0}
查询
db.classes.update(
{ _id: ObjectId("597f6864694ff43ddca09eaf") },
{ $push: { _users: {userID: 1}}}
);
模式
var userSchema = new Schema({
userID: {type: Number, unique: true},
// ...
};
mongoose.model('User', userSchema);
var classSchema = new Schema({
_users: {type: [userSchema]},
// ...
});
mongoose.model('Class', classSchema);
db.class.find({});
[
{
"_id": "597df15eb0b0bd17c985df05",
"_users": [
{
"_id": "597e9d373f01d64b66b9249f",
"userID": 1,
},
{
"_id": "597f6892694ff43ddca09eb0",
"userID": 2,
}
],
},
{
"_id": "597f6864694ff43ddca09eaf",
"_users": [],
}
]