MongoDB- структура данных месячной / годовой схемы, вложенная в один встроенный документ?

Используя MongoDb и Mongoose,

Я хочу создать веб-приложение, которое отслеживает температуру комнат. Temp может быть введен в любое время дня... например, раз в час (я могу ограничить рост массива во внешнем интерфейсе). У меня будут графики, на которых пользователь может показывать по дням, неделям, месяцам или годам... так что, как и раньше, это будут запросы.

Используя MongoDb, у меня есть эта схема:

var weeklySchema = new Schema({
  _user: { type: Number, ref: 'User' },
  _id: ObjectId(),
  room: String,
  updated_at: Date,
  sun: [ { _id: ObjectId(), value: Number } ], //ObjectId() would be the time stamp of value
  mon: [ { _id: ObjectId(), value: Number } ],
  tues: [ { _id: ObjectId(), value: Number } ],
  wed: [ { _id: ObjectId(), value: Number } ],
  thur: [ { _id: ObjectId(), value: Number } ],
  fri: [ { _id: ObjectId(), value: Number } ],
  sat: [ { _id: ObjectId(), value: Number } ]
});

Я хотел бы воспользоваться встроенными документами MongoDb и поместить больше информации в один документ, поэтому я подумал вместо ежемесячной схемы. Но я читал, где MongoDb плохо запрашивает / читает / записывает, если структуры данных становятся вложенными или имеют древовидную структуру.

Если бы я делал ежемесячный или даже годовой документ, стала бы структура данных настолько вложенной, что я бы потерял преимущество в производительности / оптимизации одного встроенного документа? Если нет, как я могу структурировать ежемесячно или ежегодно, как у меня выше?

1 ответ

Решение

Создайте свою схему как Date Aggregation Operations,

var dailySchema = new Schema({
  _user: { type: Number, ref: 'User' },
  _id: ObjectId(),
  room: String,
  updated_at: Date,
});

var Daily = mongoose.model('Daily', dailySchema);

Тогда вы можете работать update_at через

Daily.aggregate({ $project: { day: { $dayOfMonth: "$updated_at" } } });

Также еженедельные, ежемесячные и годовые данные могут быть получены. Вот одна дискуссия здесь

Другие вопросы по тегам