mongoose NodeJS:编辑引用数组

qybjjes1  于 2023-04-06  发布在  Go
关注(0)|答案(1)|浏览(122)

假设我有这些模型(虚拟示例):

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中的金额。
我知道我可以一个接一个地编辑订单,但我觉得必须有更好的方法来做到这一点。有可能在一个路由/控制器中完成吗?如果没有,最好的方法是什么?
任何帮助都很感激

m4pnthwp

m4pnthwp1#

在order schema中给予ref buyerId引用,而不是在buyer schema中指定orders引用。这将是正确的关系。并且您可以使用mongoose findOneAndUpdate()updateMany()通过buyerId更新订单。

相关问题