对于我的项目,我想为组织组保留一个猫鼬文档,如下所示:
var groupSchema = Schema({
name : { type : String },
org : { type : Schema.Types.ObjectId, ref : 'Organization' },
...
users : [{
uid : { type : Schema.Types.ObjectId, ref : 'User' },
...
}]
});
我想防止同一个用户在同一个组中两次。为此,我需要强制 users.uid 在 users 数组中是唯一的。我尝试为 uid 声明“唯一:真”,但这没有用。有没有办法用 mongoose 或 mongoDB 做到这一点而无需额外的查询或拆分模式?
编辑:我将 uid 的先前值更改为 uid : { type : Schema.Types.ObjectId, ref : 'User', index: {unique: true, dropDups: true} } 但这似乎仍然不起作用。
编辑:假设没有简单的方法来实现这一点,我添加了一个额外的查询,检查用户是否已经在组中。这在我看来是最简单的方法。