我有一个标准的 Mongoose 用户方案和一个“统一”方案,以以下方式保存服装项目:
mongoose.Schema({
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
items: { type: [String], unique: true }
})
事情是,我希望“items”数组中的项目仅在用户范围内是唯一的。这意味着我不希望用户拥有具有相同元素的薮猫制服。但我对其他用户拥有与我的用户相同的项目没有任何问题。
当前方案阻止任何制服在“items”内具有相同的值,我希望它恰好在用户的范围内。 这还可以吗?
(在 ruby on Rails 中,创建此行为的行是:validates_uniqueness_of :items, range: [:user]
)
最佳答案
如果User
和Uniform
是不同的模式(不同的集合),那么在mongodb中无法实现不同集合的键之间实现唯一性。
我们可以通过使用 Compound Index 组契约(Contract)一集合的不同键来实现唯一性。
关于node.js - 仅在用户( Mongoose )内设置字段 'unique',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49276329/