Я пытаюсь сохранить location
парковки Spot
в одном встроенном поддокументе для более чистой объектной модели. Я хочу, чтобы coordinates
из location
для Spot
по умолчанию равнялось []
для каждого нового Spot
.
Когда я создаю Схему следующим образом:
var LocationSchema = new Schema({
Coordinates: {
type: [Number],
index: '2dsphere'
}
})
затем вставьте эту Схему как вложенный документ в Spot
:
var SpotSchema = new Schema({
location: {
type: LocationSchema,
default: LocationSchema
}
})
var Spot = mongoose.model('Spot', SpotSchema')
а затем создайте экземпляр Spot
и попробуйте установить для него coordinates
какое-то значение, например [12, 34]
:
var spot = new Spot()
spot.location.coordinates = [12, 34]
каждый новый Spot
, который я создаю с тех пор, имеет координаты по умолчанию для этого значения:
var anotherSpot = new Spot()
anotherSpot.location.coordinates //returns [12, 34]
Что я делаю не так? Я не понимаю, почему изменение свойства экземпляра изменит исходную модель и, соответственно, каждый новый экземпляр, созданный на ее основе.
РЕДАКТИРОВАТЬ
Точно такая же проблема возникает даже без использования вложенного документа:
var SpotSchema = new Schema({
location: {
type: {
coordinates: [Number],
index: '2dsphere'
},
default: {
coordinates: []
}
}
})
var Spot = mongoose.model('Spot', SpotSchema')
var spot = new Spot()
spot.location.coordinates = [12, 34]
var anotherSpot = new Spot()
anotherSpot.location.coordinates //returns [12, 34]