猫鼬:汇总来自具有多个值的填充文档的查询

时间:2018-12-28 02:39:53

标签: javascript mongodb mongoose

  • 我有三个模型,分别是Provider,Clinic和Address。
  • 提供者被引用到单个诊所。
  • 诊所有一系列地址。
  • 每个地址都有一个Point GeoJSON对象,可用于geonear查询。

给挑战设置了latlang,如何根据最接近给定坐标的地址通过$geoNear查询聚合提供者?

我的结构是否很好,还是应该对其进行修改以满足我的需求?非常感谢。

这是我的提供者架构:

export const ProviderSchema = new Schema({
  clinic: {
    ref: 'Clinic',
    type: Schema.Types.ObjectId,
  }
});

这是我的诊所模式:

export const ClinicSchema = new Schema({
  address: [Address]
});

这是地址架构:

export const Address = new Schema({
  location: {
    coordinates: {
    default: [0, 0],
    required: true,
    type: [Number],
  },
  type: {
    default: 'Point',
    enum: ['Point'],
    required: true,
    type: String,
  },
});

0 个答案:

没有答案