假设我有这些模型(虚拟示例):
const { Schema } = require("mongoose");
const DB = require("../db/db.config");
const buyerSchema = new Schema(
{
name: {
type: String,
},
orders:[{ type: Schema.Types.ObjectId, ref: "order" }]
},
{ timestamps: true }
);
const Buyer = DB.model("buyer", buyerSchema, "buyer");
module.exports = Buyer;
const { Schema } = require("mongoose");
const DB = require("../db/db.config");
const orderSchema = new Schema(
{
amount: {type: String},
orderNumber:{type:Number}
product:{ type: Schema.Types.ObjectId, ref: "product" }
},
{ timestamps: true }
);
const Order = DB.model("order", orderSchema, "order);
module.exports = Order;
我需要更新的订单(一个或多个)从一个特定的买家在前端。
例如:我想更改来自买方A的订单X和Y中的金额。
我知道我可以一个接一个地编辑订单,但我觉得必须有更好的方法来做到这一点。有可能在一个路由/控制器中完成吗?如果没有,最好的方法是什么?
任何帮助都很感激
1条答案
按热度按时间m4pnthwp1#
在order schema中给予ref
buyerId
引用,而不是在buyer schema中指定orders
引用。这将是正确的关系。并且您可以使用mongoosefindOneAndUpdate()
或updateMany()
通过buyerId
更新订单。