node.js - 仅在用户( Mongoose )内设置字段 'unique'

标签 node.js mongodb express mongoose

我有一个标准的 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])

最佳答案

如果UserUniform是不同的模式(不同的集合),那么在mongodb中无法实现不同集合的键之间实现唯一性。

我们可以通过使用 Compound Index 组契约(Contract)一集合的不同键来实现唯一性。

关于node.js - 仅在用户( Mongoose )内设置字段 'unique',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49276329/

相关文章:

javascript - React prop-type 模块映射未定义

MongoDB 多键复合索引 - 需要帮助了解边界

javascript - 难以通过 JavaScript 中的获取请求发送 cookie

javascript - 如何断开在特定时间内不活跃聊天的客户端的连接(socket.io,javascript)

node.js - 设置 Passport-jwt 身份验证

node.js - 使用 LUIS 和 Microsoft Bot Framework 识别产品编号的最佳方法

javascript - Node.js 流写入循环

javascript - node.js 从 url 下载带有未知扩展名的图像

mongodb - Elasticsearch 在每次搜索请求时超时,直到重新启动

mongodb - 如何从 MongoDb 对象中删除属性?