我有一个用户模型,可以分为两种类型:见习生和招募人员。
我希望申请者有一个地理定位领域,但不是招聘人员,我必须使他们在一个单一的模型。
我的模型中有一部分
const schema = new mongoose.Schema(
{
type: {type: String},
name: {type: String},
geolocation: {
name: {type: String},
type: {type: String, default: 'Point'},
coordinates: {type: [Number]}
}
}
)
schema.index({ geolocation: '2dsphere' })
export default mongoose.model('User', schema)
我的问题是:
当我试图创建一个“招聘者”时,我遇到一个错误,说Mongo未能将“地理位置”索引到2dsphere索引中。
我只想在地理位置不为空时索引它,这样我就可以在不保存位置的情况下创建招聘人员,并在保存位置的情况下创建应聘人员。
你能帮我吗?:)
1条答案
按热度按时间n53p2ov01#
我知道问题出在哪了:
我定义:
事实上,在
default: 'Point'
中,我创建了一个地理位置对象,它有一个空数组,为了解决这个问题,我删除了这个default: 'Point'
,并且没有创建该对象,所以schema.index
没有运行。