仅当文档中的属性与另一个属性具有相同的值时,才确保它们是唯一的

Posted

技术标签:

【中文标题】仅当文档中的属性与另一个属性具有相同的值时,才确保它们是唯一的【英文标题】:Ensure property in document is unique only if they have the same value of another property 【发布时间】:2021-10-17 20:37:32 【问题描述】:

假设我有这样的架构:

const MySchema = new mongoose.Schema(
    userId: 
        type: mongoose.Schema.Types.ObjectId,
        required: true,
    ,
    nonce:
        type: Number,
        required: true,
    
);

如果 userId 相同,我如何确保 nonce 是唯一的?但是具有不同 userId 的文档可以具有相同的 nonce?

【问题讨论】:

【参考方案1】:

您可以创建唯一的复合索引,例如:

   db.collection.createIndex(userId:1 , nonce:1 ,unique: true)

【讨论】:

以上是关于仅当文档中的属性与另一个属性具有相同的值时,才确保它们是唯一的的主要内容,如果未能解决你的问题,请参考以下文章

仅当它是数组中的值时才可以打印数字吗? (Java)[重复]

BigQuery:仅当字段具有特定值时才获取表中的最新行

atomic query-仅当没有其他具有相同键[duplicate]的文档时才添加新文档

MongoDB + Mongoose:仅当给定键不存在或具有虚假值时才设置

仅当它在 AngularJs 中有值时才需要下拉

Hibernate HQL:当且仅当所有子实体都具有相同值的属性时,如何选择父实体?