Node.js Mongoose JS子文档唯一性验证

Node.js Mongoose JS子文档唯一性验证,node.js,mongoose,Node.js,Mongoose,我正在构建一个应用程序,它使用移动设备UID作为根据父模型对会话进行身份验证的方法之一。我的意图是,作为一个用户,可以对多个父级进行身份验证,但每个父级在数据库中只有一个会话条目 ParentSchema { sessions: [{ device_uid: { type: String, unique: true } }] } 会话是它自己的模式对象(为简单起见,内联编写) 我的问题是:如果我对设备uid进行唯一验证,验证的上下文是其父文档的子文档还是所有父文档的所有会话子文档

我正在构建一个应用程序,它使用移动设备UID作为根据父模型对会话进行身份验证的方法之一。我的意图是,作为一个用户,可以对多个父级进行身份验证,但每个父级在数据库中只有一个会话条目

ParentSchema {
  sessions: [{
   device_uid: { type: String, unique: true }
  }]
}
会话是它自己的模式对象(为简单起见,内联编写)


我的问题是:如果我对设备uid进行唯一验证,验证的上下文是其父文档的子文档还是所有父文档的所有会话子文档?

会话的子文档中的
设备uid
上的唯一索引确保两个文档不能具有具有相同
设备uid
数组元素的
会话
。但是,同一文档中的两个元素具有相同的
设备uid

。因此,即使子文档是它自己的模式,唯一的验证仍然在最顶层父模式或文档的上下文中?@snowman4415 Correct。Mongoose索引始终使用集合上定义的MongoDB索引实现。