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