通过mongoDB Query是否可以从嵌套数组中提取对象?

时间:2018-10-18 11:38:18

标签: javascript mongodb mongoose-schema

我的猫鼬有以下模式。

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,
          }
        }
      ]

    }
  ]
});

我要提取天数组中的单个对象。

注意::在days数组中嵌套了days数组,我使用$ pull退出该天,但我想再次进行推送和推送(更新日期)。

1 个答案:

答案 0 :(得分:0)

如果您知道在days数组中的哪个元素上需要信息,我认为您可以执行此操作,因为days数组将由多个元素组成。
假设您需要数组中的第一个元素:

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

您可以根据需要的数据将0更改为所需的任何数字。