Есть такой код
let mathCritt = await Reviews.aggregate()
.match({
shop_id: mongoose.Types.ObjectId(shopId),
})
.lookup({
from: "orders",
localField: "order_id",
foreignField: "_id",
as: "orderArr",
})
.unwind("orderArr")
.lookup({
from: "users",
localField: "orderArr.client",
foreignField: "_id",
as: "clientsArr",
})
.unwind("clientsArr")
.lookup({
from: "cities",
localField: "clientsArr.city",
foreignField: "_id",
as: "cityArr",
})
.unwind("cityArr")
.match({ "cityArr.id": mongoose.Types.ObjectId("cityArr._id") });
и есть такая модель
сonst reviewsSchema = new Schema(
{
order_id: { type: Types.ObjectId, ref: "Order", required: true },
feedback: { type: String, required: true },
managerReply: { type: String, required: true },
score: { type: Number, required: true, enum: [1, 2, 3, 4, 5] },
status_id: { type: Types.ObjectId, ref: "PendingStatus", required: true },
shop_id: { type: Types.ObjectId, ref: "Shop", required: true },
},
мне нужно пойти в order_id => client => city и в нем уже взять айди, либо взять просто city в client, так как он и так там выглядит как id ,если его не unwindit'