Я использую мангуст 5 и имею такие схемы:
user.js
const mongoose = require('mongoose');
const GeoData = require('./geodata');
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
createdAt: {
type: Date,
default: Date.now()
},
geodata: GeoData
});
UserSchema.index({ deviceToken: 1 }, { unique: true });
module.exports = UserSchema;
геоданные.js
const mongoose = require('mongoose');
const c2p = require('circle-to-polygon');
const GeoDataSchema = new mongoose.Schema({
location: {
coordinates: [Number],
type: {
type: String
}
},
createdAt: {
type: Date,
default: Date.now()
},
expireAt: {
type: Date,
default: new Date().setHours(12,0,0,0)
}
});
GeoDataSchema.index({ location: "2dsphere", bounds: "2dsphere" });
GeoDataSchema.index({ 'expireAt': 1 }, { expireAfterSeconds: 0 });
module.exports = GeoDataSchema;
Предположим, что вложенный документ geodata
добавляется к родительскому документу user
со сроком действия, установленным по умолчанию на 12:00:00 по местному времени. К сожалению, это удаляет родительский user
с поддокументом geodata
вместо удаления только geodata
, как я ожидал.
Это нормальное поведение или я что-то упускаю?