基于其他集合字段更新集合



我有两个模式,这是父集合模式:

const TimesheetSchema = Schema({
managersComment: {
type: String,
},
weekNum: {
type: Number,
},
year: {
type: Number,
},
user: { type: Schema.Types.ObjectId, ref: userModel },
status: {
type: String,
enum: ["Saved", "Submitted", "Approved", "Rejected"],
},
data: [{ type: Schema.Types.ObjectId, ref: TimesheetIndividualData }]
});

这是子集合模式

const TimesheetDataSchema = new Schema(
{
workingDate: {
type: Date,
},
dayVal: {
type: Number,
},
user: { type: Schema.Types.ObjectId, ref: userModel },
parentId: { type: String },
status: { type: String }
},
{ timestamps: true }
);

我想基于parentId更新TimesheetDataSchema(child collection)中所有的status字段,这里的parentId基本上是TimesheetSchema (parent collection)_id

不确定如何通过mongoose/mongo查询做到这一点,所以我试图通过express中的代码做到这一点。

请帮助。

db.timeSheetData.updateMany({"parent_id": ObjectId(_id)})呢?

(编辑)
  • TimeSheetSchemacollection中获取数据
  • 遍历它并为每个data获得_id
  • db.timeSheetsData.updateMany({"parent_id": _id}, {"$set": {"status": data.status}

相关内容

  • 没有找到相关文章

最新更新