Javascript Mongoose以编程方式更新单个数组属性项

Javascript Mongoose以编程方式更新单个数组属性项,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,我正在尝试使用mongoose更新单个数组属性项: const updatePurchaseItem = async (purchaseOrder, itemIndex, product) => { let position = "items." + itemIndex + ".product_id"; let query = { _id: purchaseOrder._id, deletedAt: null };

我正在尝试使用mongoose更新单个数组属性项:

const updatePurchaseItem = async (purchaseOrder, itemIndex, product) => {

    let position = "items." + itemIndex + ".product_id";
    let query = {
            _id: purchaseOrder._id,
            deletedAt: null
    };

    await PurchaseOrderModel.update(query, position: product._id);
}
我得到以下错误:

Cast to ObjectId failed for value "items.1.product_id" at path "_id" for model "PurchaseOrder"
代码的正确语法是什么

路径“\u id”
是什么意思


使用
mongoose.findOne()
从数据库中读取
purchaseOrder
product
,是否尝试将参数作为对象进行解析?就像在
{position:product.\u id}

中一样,您的模型看起来怎么样?
product\u id
包含什么?问题是从
product.\u id
传递的输入无效。您可以通过运行
mongoose.Types.ObjectId.isValid(product.u id)