猫鼬索引引用

时间:2018-06-29 16:24:44

标签: mongodb mongoose mongoose-schema

我一直在寻找有关索引引用Mongoose(v5)的信息,但我还有两个问题:

所以,我有两个这样的架构A和B:

const aSchema = new Schema({
  members: [{
    type: Schema.Types.ObjectId,
    ref: 'B',
    index: true,
    required: true
  }]
}, { timestamps: true })

const bSchema = newSchema //etc

aSchema.static({
  add(initialMember, otherMembers){
    const members = [initialMember, ...otherMembers].sort()
    return B.findOne({members})
  }
})

const A =  mongoose.model('A', aSchema)
const B = mongoose.model('B', aSchema)

所以,我索引B.members的目标是允许我们从一个B文档及其对应的id查找包含对B引用的A文档开始。A.collection上的listIndexes方法将列表members_1设置为索引。

  1. 这是正确的吗?如果是,这是一个好习惯吗?
  2. 此调用确保索引。我有一个仅使用{autoReconnect: false}连接的测试环境。当它与数据库断开连接时,将引发“不允许使用过期的会话”错误。显然,仅对于该索引和该索引,在数据库断开连接之前索引尚未完成。

谢谢!

0 个答案:

没有答案