0

有一个类似的线程@Mongoose 变量键名。然而,他采用了另一种方法而不是解决这个问题。另一种方法是我标题的 OR 部分。

编辑 - 忽略本节,我现在正在使用替代方案。现在的问题在于在其他地方引用孩子的对象 ID。

我有以下数组:

selections: [{
   4433d18d31f3775756ac2a70: "542e91aa31f3775756abccda"},
   {4433d18d31f3775756ac2a71: "542e916c31f3775756abccd8"},
   {4433d18d31f3775756ac2a72: "542e934231f3775756abccdb"
}]

我的架构目前如下:

selections: {
    <something>: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Selection'
    }
}

在适当的地方<something>,有没有一种方法可以说“我不在乎这里有什么”?

或者,因为这在搜索互联网后似乎不可能,我可以有以下模式:

selections: {
    pid: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Competition.CHILD'
    }
    selection: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'Selection'
    }
}

但这里的问题是,正在使用的 ObjectID 是<something>模式竞赛中的子模式,我找不到对 Object ID 这么说的方法。

请提供任何建议/帮助。理想情况下,我更喜欢第一个解决方案,但我知道这可能是不可能的。谢谢!

4

1 回答 1

1

使用带有可选(但固定)键的对象数组:

selections: [{
  selection: {type: ObjectId, ref: 'Selection'},
  child: {type: ObjectId, ref: 'Competition.CHILD'}
}]

这将使您能够进行更好的查询,使用猫鼬种群等。

于 2014-10-17T13:13:19.240 回答