Возможно ли извлечь объект из вложенного массива с помощью mongoDB Query? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть следующая схема в mongoose.

var AttendanceSchema = new mongoose.Schema({
  ownerId: mongoose.Schema.Types.ObjectId,
  companyId: mongoose.Schema.Types.ObjectId,
  months: [
    {
      currentSalary: {
        type: Number,
        default: 0
      },
      month: {
        type: Date,
      },
      salary: {
        type: Number,
        default: 0
      }
      days: [
        {
          manuallyUpdated: {
            type: Boolean,
            default: false
          },
          date: {
            type: Date,
          },
          perDaySalary: {
            type: Number,
            default: 0
          },
          status: {
            type: String,
          }
        }
      ]

    }
  ]
});

Я хочу извлечь единственный объект в массиве дней.

Примечание: Есть массив днейвложенный в массив месяцев, и я использовал $ pull, чтобы вытащить этот день, но я хочу вытащить и снова нажать (обновленный день).

1 Ответ

0 голосов
/ 18 октября 2018

Я думаю, вы можете сделать это, если знаете, в каком элементе массива days есть нужная вам информация, потому что массив days будет состоять из нескольких элементов.
Предположим, вам нужен первый элемент массива:

Attendance.findOne({_id: request.id}, function(err, foundAttendance){
console.log(foundAttendance.days[0].date);
}

и вы можете изменить 0 на любое число, которое вам нужно, в соответствии с нужными вам данными.

...